GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare il comando find per eliminare i file che corrispondono a un modello?

Soluzione 1:

Generalmente trovo che l'uso del -exec opzione per find essere più facile e meno confuso. Prova questo:

find . -name vmware-*.log -exec rm -i {} \;

Tutto dopo -exec è considerato un comando da eseguire per ogni risultato, fino al ; , che qui è sottoposto a escape in modo che venga passato a find . Il {} è sostituito con il nome del file find verrebbe normalmente stampato.

Una volta verificato che fa quello che vuoi, puoi rimuovere il -i .

Soluzione 2:

Se hai GNU find puoi usare il -delete opzione:

find . -name "vmware-*.log" -delete

Per utilizzare xargs ed evitare il problema con gli spazi nei nomi dei file:

find . -name vmware-*.log -print0 | xargs -0 rm

Tuttavia, i tuoi file di registro non dovrebbero avere spazi nei loro nomi. È probabile che i documenti di elaborazione testi e i file MP3 li contengano, ma dovresti essere in grado di controllare i nomi dei tuoi file di registro.

Soluzione 3:

Puoi dire find per delimitare l'elenco di output con NULL e xargs per ricevere la sua lista di input allo stesso modo:

$ ls -l "file 1" "file 2"
-rw-r--r-- 1 james james 0 Oct 19 13:28 file 1
-rw-r--r-- 1 james james 0 Oct 19 13:28 file 2

$ find . -name 'file *' -print0 | xargs -0 ls -l
-rw-r--r-- 1 james james 0 Oct 19 13:28 ./file 1
-rw-r--r-- 1 james james 0 Oct 19 13:28 ./file 2

$ find . -name 'file *' -print0 | xargs -0 rm -v
removed `./file 2'
removed `./file 1'

Inoltre, assicurati di eseguire l'escape di * , con una barra rovesciata o contenendo il vmware-*.log tra virgolette singole, altrimenti la tua shell potrebbe tentare di espanderlo prima di passarlo a find .

Soluzione 4:

Non dimenticare -delete della ricerca opzione. Rimuove il file senza errori con caratteri speciali...


Linux
  1. Come trovare il numero di file in una directory e sottodirectory

  2. Come eliminare file ENORMI (100-200 GB) in Linux

  3. Come utilizzare il comando Grep per trovare testo nei file

  4. Come cercare in file specifici che corrispondono a un modello?

  5. Come trovare file con il comando fd in Linux

Come utilizzare il comando cp per copiare file e directory

Come utilizzare il comando SCP per trasferire file

Come utilizzare il comando SED per trovare e sostituire la stringa nei file

Come trovare file con il comando fd in Linux

Come rimuovere/eliminare file in Linux usando il comando rm

Come trovare le cartelle in Linux