GNU/Linux >> Linux Esercitazione >  >> Linux

Come rimuovere tutti i file in una cartella tranne un file specifico in Linux

Diciamo che hai più di 100 file in una cartella. Vuoi eliminarli tutti tranne uno o pochi file specifici. Come lo faresti? È possibile copiare i file che si desidera conservare e salvarli in una posizione diversa, quindi eliminare il resto dei file o l'intera cartella. Ma aspetta, conosco un modo più semplice per farlo. Puoi rimuovere tutti i file in un file precedente tranne un file specifico o determinati tipi di file in una volta sola con un comando a riga singola. Vuoi sapere come? Continua a leggere.

Rimuovi tutti i file in una cartella tranne un file specifico

Immaginiamo il seguente esempio. Abbiamo una cartella chiamata 'test' che contiene 10 file di testo.

$ ls test/

Esempio di output:

file10.txt file2.txt file4.txt file6.txt file8.txt
file1.txt file3.txt file5.txt file7.txt file9.txt

Ora, voglio eliminare tutto in questa cartella tranne file10.txt .

Potrebbero esserci molti comandi per farlo. Ma questi sono i cinque comandi di cui sono a conoscenza.

Per prima cosa, vai al test cartella:

$ cd test/

Ed esegui il seguente comando:

$ rm -f !(file10.txt)

Oppure, usa semplicemente:

$ rm !(file10.txt)

Il comando precedente eliminerà tutti i file nella cartella di test tranne file10.txt file.

Puoi anche utilizzare comando trova per eliminare tutto tranne uno specifico. Il comando seguente cancellerà tutti i file nella cartella corrente (cioè test nel nostro caso) eccetto file10.txt.

$ find . ! -name file10.txt -delete

Come puoi vedere nell'esempio sopra, la cartella di test contiene lo stesso tipo di file, ad esempio file .txt. Cosa faresti se la cartella ha diversi tipi di file come .mp3, .doc, .pdf ecc.? È anche facile conservare un particolare tipo di file in una cartella ed eliminare tutto il resto.

Supponiamo che la nostra cartella di prova contenga tre file .txt, tre file .mp3, tre file .doc e un file .pdf.

$ ls test/

Risultato di esempio:

total 0
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file10.pdf
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file1.txt
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file2.txt
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file3.txt
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file4.mp3
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file5.mp3
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file6.mp3
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file7.doc
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file8.doc
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file9.doc

Come nell'output sopra, ho quattro diversi tipi di file (pdf, txt, mp3, doc) nella cartella di prova. Vorrei conservare i file con .doc estendere e rimuovere tutto il resto. Ecco come posso farlo:

$ cd test/
$ rm !(*.doc)

Ora, elenchiamo il contenuto del file usando il comando:

$ ls

Risultato di esempio:

file7.doc  file8.doc  file9.doc

Il comando precedente elimina tutto nella cartella tranne i file con estensione .doc .

Allo stesso modo, puoi conservare due o più tipi particolari di file e rimuovere tutto il resto. Supponiamo, ad esempio, che il comando seguente manterrà i file che contiene .doc e .mp3 estensioni.

$ rm !(*.doc|*.mp3)

Ora vedrai che i file mp3 e doc non sono stati eliminati.

$ ls

Risultato di esempio:

file4.mp3  file5.mp3  file6.mp3  file7.doc  file8.doc  file9.doc
Scarica - Guida gratuita:"GNU/Linux Basic"

Questi sono solo dieci diversi tipi di file. Solo immagine hai centinaia di file. Sarebbe più difficile trovare ogni tipo di file ed eliminarli manualmente. Questo trucco farà il lavoro in uno o due secondi.

Si prega di prestare molta attenzione durante l'utilizzo di questi comandi. Ricontrolla il percorso della directory prima di eliminare i file per evitare l'eliminazione accidentale di file importanti.

Lettura consigliata:

  • Previeni la cancellazione o la modifica accidentale di file e cartelle in Linux
  • Un modo semplice per proteggere i file dall'eliminazione accidentale in Linux

Spero questo sia di aiuto. Se trovi utile questa guida, condividila sui tuoi social network professionali e sostienici.

Altre cose buone in arrivo. Resta sintonizzato!

Ciao!


Linux
  1. Come aggiungere numeri di riga a file di testo su Linux

  2. Rimuovere tutti i file/directory tranne un file?

  3. Sposta tutti i file tranne uno

  4. Come trovo tutti i file contenenti testo specifico su Linux?

  5. Come dividere un file di testo in più file *.txt?

Tutto sui file tar e su come tar, untar file in Linux usando il terminale

Come rimuovere file con estensione specifica in Linux

Come trovare file contenenti una stringa di testo specifica in Linux

Come rimuovere (^M) caratteri da un file in Linux

Come unire/unire più file audio in uno in Linux

Come comprimere un file in Linux