chalda.it
7giu/093

Cambiare nome a molti file in linux

Per rinominare molti file contemporaneamente in una directory in linux si può utilizzare un semplice ciclo for:

for filename in *; do mv $filename filename_nuovo; done

In questo modo rinomina tutti i file (*) nella directory come filename_nuovo.

Per esepio se vogliamo aggiungere a tutti i file in una directory l'estensione .bak è sufficiente modificare così la riga:

for filename in *; do mv $filename $filename.bak ; done

Se invece si ha familiarità con le espressioni regolari di perl... allora diventa tutto semplice utilizzando il comando replace!
Alcuni esempi:

   # Rimuove l'esetensione .bak ai file .bak
   rename 's/\.bak$//' *.bak

   # converte in minuscolo i nomi dei file
   rename 'y/A-Z/a-z/' *

Ricordatevi che esiste anche un simpatico parametro -n che simula e visualizza a video i file che verrebbero modificati. Una buona cosa per evitare problemi :)