[FoLUG] rename multiple files

Fabio Fabbri fabio@llgp.org
Lun 13 Mar 2006 12:58:29 CET


Con Bash si può usare un comando lungo una riga:
for i in *_*; do mv -i $i ${i%_*}.tar.gz; done
Da lanciare nella cartella dove si trovano questi file.

Questo comandino esegue un ciclo per tutti i file contenuti nella 
cartella corrente che contengono un trattino, e ad ogni passo il nome 
del file corrente viene messo in $i. La "magia" viene fatta in 
"${i%_*}", che prende $i e gli toglie tutto quello che c'è dopo l'ultimo 
trattino (trattino compreso). Per sicurezza ho messo mv in modalità 
interattiva, così se due file verrebbero rinominati allo stesso modo, 
chiede conferma.

Prima di lanciarlo fai una copia di backup dei file, e/o prova prima con
for i in *_*; do echo mv -i $i ${i%_*}.tar.gz; done
Così stampa solo la lista dei comandi che lancerebbe.

Facci sapere!

Saluti
Fabio Fabbri


Maggiori informazioni sulla lista FoLUG