Rendere minuscoli i file
Da One Liners.
Script che rendono minuscoli tutti i nomi dei file contenuti in $DIR
Indice |
[modifica] Soluzione per bash
$ for FILE in $DIR/* ; do mv "$FILE" "`echo $FILE | \ tr '[:upper:]' '[:lower:]'`" ; done
[modifica] Commento
for FILE in $DIR/* do mv "$FILE" "`echo $FILE | tr '[:upper:]' '[:lower:]'`" done
La conversione da maiuscolo a minuscolo viene effettuata dal comando
tr '[:upper:]' '[:lower:]'
sul nome del file; l'output viene poi usato come agomento del comando mv tramite gli apici rovesciati ` `.
[modifica] Variante: solo file
Se si vogliono rendere minuscoli solo i nomi dei file regolari, e non ad esempio le directory, si può aggiungere un test come
for FILE in $DIR/* ; do if [ -f $FILE ] ; then \ mv "$FILE" "`echo $FILE | tr '[:upper:]' '[:lower:]'`" ; fi ; done
ovvero, in modo più comodo da leggere
for FILE in $DIR/*
do
if [ -f $FILE ]
then
mv "$FILE" "`echo $FILE | tr '[:upper:]' '[:lower:]'`"
fi
done
[modifica] Soluzione bash alternativa
In questo modo si effettua la modifica solo dei file regolari, e non ad esempio delle directory.
Se ci si vuole fermare (non scendere troppo nella gerarchia di directory) e' necessario usare GNU find, e l'opzione -maxdepth .
(da verificare)
$ for i in `find $DIR -type f`; do mv ${i} "`dirname ${i}`/`basename ${i}|tr '[:upper:]' '[:lower:]'`" ; done
[modifica] Soluzione con rename(1)
$ rename ’y/A-Z/a-z/’ $DIR/*
