Script per l’eliminazione ricorsiva dei file

Reading Time: < 1 minuteFavoriteLoadingAggiungi ai preferiti

Spesso si rende necessario dover eliminare una lista di file presenti in svariate directory e farlo tramite file manager è veramente lungo e noioso. In questi casi con un semplice script possiamo risolvere il problema.

Vediamo come fare.

Ammettiamo di voler eliminare tutti i file pdf presenti nella nostra home directory, comprese le sottodirectory:

1) cerchiamo i file

find /home/mia_home|grep .pdf$ l’espressione regolare grep .pdf$ cerca tutti i file che finiscono con .pdf presenti nella home directory ed in tutte le sottodirectory;

2) salviamo l’elenco dei file su un file che chiamiamo lista_file

find /home/mia_home|grep .pdf$ > lista_file il comando > lista_file redirige lo standard output nel file lista_file

3) verifichiamo il file creato

less /home/mia_home/lista_file dovrebbe stampare a video una lista simile alla seguente, se avete file pdf nella vostra home

./htdocs/mia_home/ZendFramework-1.5.0PR/ZendFramework-1.5.0PR/demos/Zend/Pdf/test.pdf
./htdocs/mia_home/ZendFramework-1.5.0PR/ZendFramework-1.5.0PR/tests/Zend/Pdf/_files/pdfarchiving.pdf
./htdocs/mia_home/ZendFramework-1.5.0/demos/Zend/Pdf/test.pdf
./htdocs/mia_home/ZendFramework-1.5.0/tests/Zend/Pdf/_files/pdfarchiving.pdf

4)comando x la rimozione dei file

Il comando per rimuovere un file in linux è rm, dobbiamo fare in modo che questo venga aggiunto all’inizio di ognuna delle righe presenti all’interno del file lista_file; per fare ciò modifichiamo il comando al punto 2 in questo modo

find /home/mia_home|grep .pdf$ |awk ‘{print “rm -vfR “$0}’ > lista_file

analiziamo il comando |awk ‘{print “rm -vfR “$0}’

  • awk ci auta a formattare l’output
  • {print “rm -vfR “$0}’ stampa il risultato con il formato rm -vfR file.pdf ($0)

5) verifichiamo il file creato

less /home/mia_home/lista_file dovrebbe stampare a video una lista simile alla seguente

rm -vfR ./htdocs/test/ZendFramework-1.5.0PR/ZendFramework-1.5.0PR/demos/Zend/Pdf/test.pdf
rm -vfR ./htdocs/test/ZendFramework-1.5.0PR/ZendFramework-1.5.0PR/tests/Zend/Pdf/_files/pdfarchiving.pdf
rm -vfR ./htdocs/test/ZendFramework-1.5.0/demos/Zend/Pdf/test.pdf
rm -vfR ./htdocs/test/ZendFramework-1.5.0/tests/Zend/Pdf/_files/pdfarchiving.pdf

6) rimuoviamo i file

Per rimuovere i file che popolano il notro file lista_file non dobbiamo fare altro che rendere lista_file eseguibile

chmod +x lista_file

ed eseguirlo

./lista_file

The End