Sicuramente in qualche occasione hai verificato di avere un tipo di file inutile in più cartelle, che occupa poco spazio ma semplicemente non lo vuoi sul tuo computer. Ad esempio, in macOS vengono creati alcuni file .DS_Store che salvano informazioni sull'icona di una cartella, la sua dimensione e posizione, e in Windows ci sono desktop.ini che sono equivalenti. Cosa facciamo se abbiamo una directory piena di sottodirectory e vogliamo eliminare questi o altri tipi di file? Quello che dobbiamo fare è cancellare ricorsivamente Ognuno di loro.
Questo è qualcosa che possiamo fare con tutti i tipi di file. Ad esempio, se abbiamo un disco rigido pieno di musica, abbiamo un lettore che ha scaricato le copertine e non vogliamo che vengano salvate, possiamo usare lo stesso comando che spiegheremo di seguito per eliminarle. Naturalmente, tenendo conto che cancelleremo ricorsivamente i file di directory e le loro sottodirectory con il terminale e che questi andranno persi per sempre, non fa male stare attenti e / o fare un test prima di eliminare tutto ciò che vogliamo eliminare.
Elimina in modo ricorsivo i file di un tipo dal terminale
I comandi per i file macOS .DS_Store di esempio sarebbero i seguenti:
cd ruta/a/directorio find . -name '*.DS_Store' -type f -delete
Dei comandi precedenti, il primo ci posizionerà nella cartella da cui vogliamo iniziare, cioè quella che contiene tutti i file .DS_Store che vogliamo eliminare. Il secondo è quello che eliminerà tutti i file .DS_Store dal file prima cartella e le sue sottocartelle o directory. Se quello che vogliamo è eliminare le foto dalle cartelle musicali precedentemente menzionate, dobbiamo mettere il tipo di estensione tra le virgolette, ad esempio "* .jpg".
Ad essere onesto al 100%, questo è qualcosa che farò il giorno in cui smetterò di usare Cantata come lettore musicale predefinito. Cantata crea e nasconde file di informazioni con lo stesso nome delle canzoni che hanno un punto e una barra bassa davanti (ad esempio, ._Song). Quando ne avrò bisogno, il comando che dovrò usare sarà trova. -name '._ *' -type f -delete.
Questa piccola guida ti ha aiutato a eliminare in modo ricorsivo i file dal terminale?
Grazie, ma c'è un errore nel tuo codice. È necessario utilizzare l'espressione regolare "*", ovvero "* .DS_STORE". Ti consiglio di correggerlo. Bene, per coloro che hanno meno conoscenza di bash, il codice che hai fornito non funzionerà. Saluti!