Rinominare file multipli (mmv)
di Lorenzo Cappelletti
Avete mai avuto bisogno di rinominare un gruppo di file? Con il
vecchio DOS si poteva fare ma con Linux quando si hanno file
multipli da spostare, come destinazione e' ammessa solo una
directory.
Supponiamo ad esempio di dover rinominare tutti i file *.ps in
*.eps. Come possiamo fare?
Una soluzione e' utilizzare la riga comando
# for i in *.ps; do mv $i $(basename $i .ps).eps; done
oppure utilizzare lo script
for file in *.ps; do
mv $file ${file%.ps}.eps
done
Ma esiste un comando molto piu' veloce e sicuro:
mmv (Multiple Move)
che serve a spostare/copiare/appendere/linkare file multipli, e
che possano essere raggruppati con un wildcard (carattere jolly).
Questa azione viene effettuata in modo sicuro, ovvero non ci
sono cancellazioni di file inaspettate dovute a collisioni dei
nomi dei file di destinazione con nomi di file gia' esistenti.
Inoltre non ci sono problemi nel caso in cui i nomi dei file
contengano spazi.
La sintassi e'
# mmv 'foo*bar?' 'pinco#1pallino#2'
che significa che verranno rinominati tutti i file contenenti
le stringe "foo", "bar" e terminanti con un carattere e verra'
dato il nome "pinco" + cio' che l'asterisco trova + "pallino" +
ciò che il punto di domanda trova. L'azione di sopra diventa ora:
# mmv '*.ps' '#1.eps'
verranno quindi rinominati tutti i file da PostScript (.ps) a
encapsuled PostScript (.eps).
Per maggiori informazioni
man mmv