Cambiare nome a molti file in linux

Tutto in una riga

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 :)

Commenti

Chalda

Primo :)

sacarde

sarebbe possibile eliminare dal nome file i caratteri strani tipo: * : | ?

sacarde

ho fatto:

rename '|' '-' *

Lascia un commento