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.docScarica - 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!