Come eliminare tutti i file con una certa estensione da una cartella e tutte le sue sottocartelle? [duplicare]

12

Voglio rimuovere tutti i file .jpg dalla mia cartella Music per salvare spazio. La cartella Musica contiene sottocartelle e vorrei sapere se esiste un comando per rimuovere tutti i file .jpg da tutte queste cartelle indipendentemente dal loro livello. Grazie per il tuo aiuto!

    
posta Tigull 16.02.2012 - 19:14

4 risposte

8

Il modo più semplice (se stai usando Ubuntu Desktop):

Vai alla tua cartella Music in Nautilus, premi Ctrl + F e cerca .jpg .

& Amp; quindi cancellalo

Puoi anche cambiare la posizione e puoi rendere la tua ricerca più specifica.

Aggiornamento

Sii più specifico dopo aver cercato .jpg Cliccando sul pulsante verde Select File type Picture & amp; quindi rimuovi jpg dalla ricerca solo . dot & amp; quindi reload come mostrato nella foto qui sotto

  

In che cosa cercherà il file di immagini come .jpg .png .gif & amp; tutti gli altri file che sono in Picture Format

    
risposta data One Zero 16.02.2012 - 19:33
48

Una soluzione rapida e pulita per la riga di comando sarebbe

cd <dir>
find . -type f -iname \*.jpg -delete
  • . indica di avviare la ricerca nella cartella corrente.
  • -type f dice find solo per cercare i file.
  • -iname rende la ricerca non sensibile.
  • -delete dice find per eliminare / rimuovere tutti i file trovati.

Raccomando di eseguire il comando senza -delete per ottenere un elenco dei file che verranno rimossi quando -delete è incluso nel comando. In questo modo un piccolo refuso non cancellerà nulla che non intendevi.

Per ulteriori informazioni su come utilizzare find e cosa può fare vedere man find

Tieni presente che find non produrrà alcun output quando viene utilizzato -delete .

Per quanto riguarda il commento su più estensioni

find . -type f \( -name \*jpg -o -name \*png \) -delete

  • ( .. ) Espressione di gruppo. Deve essere scappato dalla shell, quindi \( .. \) nell'esempio
  • -o logico o

Quindi l'esempio sopra troverà qualsiasi file che abbia jpg o png alla fine del suo nome. Altre estensioni possono essere aggiunte allo stesso modo. Assicurati solo di ricordare -o tra ogni -name , se -o non è specificato find verrà impostato come predefinito a -a (and) che non funzionerà poiché un file non può terminare in entrambi jpg e png allo stesso tempo.

    
risposta data Zoke 16.02.2012 - 20:11
4

Questo dovrebbe farlo

sudo rm -rf -d ~/Music/*.JPG

che rimuoverà tutti i file .JPG all'interno della cartella Music.

    
risposta data Ringtail 16.02.2012 - 19:31
0

Il shopt -s globstar di Bash può essere utile qui per il globbing ricorsivo:

bash-4.3$ tree
.
├── 10.jpg
└── subfolder
    ├── 5.jpg
    └── another_subfolder
        └── 15.jpg

2 directories, 3 files
bash-4.3$ shopt -s globstar
bash-4.3$ rm ./**/*.jpg
bash-4.3$ tree
.
└── subfolder
    └── another_subfolder
    
risposta data Sergiy Kolodyazhnyy 13.07.2017 - 07:26

Leggi altre domande sui tag