GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Eliminare le inserzioni filtrate durante la produzione di un output?

Ho una directory con un sacco di estensioni di file misti e vorrei elencare un'estensione di file specifica (forse qualcosa come grep *.mp3 ) e durante l'elenco, eliminali con un output. Come posso farlo o se c'è un imbroglione, sentiti libero di taggarmi.

Esempio:

grep "*.mp3" . | rm -fr 

Risposta accettata:

Iniziamo con una directory con tre mp3 file:

$ ls *mp3
a.mp3  b.mp3  c.mp3

Ora, eliminiamoli dopo aver elencato ciò che stiamo eliminando:

$ find . -maxdepth 1 -name '*.mp3' -printf 'Deleting %p\n' -delete
Deleting ./a.mp3
Deleting ./b.mp3
Deleting ./c.mp3

Al termine, il mp3 i file sono spariti:

$ ls *mp3
ls: cannot access '*mp3': No such file or directory

Come funziona

  • `trova .

    Questo avvia un find comando. Cercherà i file nella directory corrente, . .

  • -maxdepth 1

    Per impostazione predefinita, find ricerca ricorsivamente le sottodirectory. Questo gli dice di non farlo. Con -maxdepth 1 , il comando find guarderà solo ciò che trova nella directory corrente e non esplorerà nessuna delle sottodirectory della directory corrente.

  • -name '*.mp3'

    Questo dice a find di cercare solo i file con .mp3 estensione.

  • -printf 'Deleting %p\n'

    Questo dice a find di stampare un messaggio su ogni file trovato.

    Ovviamente puoi cambiarlo con un altro messaggio, se lo desideri. Se non vuoi ricevere un messaggio, questa opzione può essere omessa del tutto.

  • -delete

    Questo dice a find di eliminare ogni file.

Ricerca senza distinzione tra maiuscole e minuscole

Se vuoi trovare anche i file chiamati .MP3 o .Mp3 ecc., quindi abbiamo bisogno di una ricerca senza distinzione tra maiuscole e minuscole e utilizziamo -iname :

find . -maxdepth 1 -iname '*.mp3' -printf 'Deleting %p\n' -delete

Ubuntu
  1. Come stampare l'output su più righe sulla stessa riga?

  2. Come trovare tutti i file relativi a un software?

  3. Non riesci a trovare il cestino?

  4. Trova l'indirizzo Mac nel filesystem?

  5. Salvare il risultato di ricerca come variabile in uno script di shell?

Come trovare l'indirizzo MAC in Ubuntu

Come trovare file sulla riga di comando di Ubuntu

Skype non trova l'ingresso audio?

Trova la riga di comando?

Scopri se il sistema operativo è in esecuzione in un ambiente virtuale

Come trovare i volumi fisici che contengono un volume logico in LVM