Technology
 

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/*

Rate this article: