[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