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

AUTORE DEL TESTO
Lorenzo Cappelletti

Pubblicato il: 11/12/2002