El 8 de marzo de 2009 1:55, Abilio Almeida Eiroa
<aabilio@gmail.com> escribió:
El 8 de marzo de 2009 1:42, Gonzalo Rivero
<fishfromsalta@gmail.com> escribió:
2009/3/7, Francisco Javier Aravena Jimenez <djmkchevette@gmail.com>:
> hola a todos esperando que se encuentren todos muy bien.
> mi consulta es sencilla
> es posible con algún comando pasar los nombre de los archivos de un
> directorio de mayusculas a minusculas..???
>
> es que tengo directorios llenos de archivos que necesito en
> minusculas...
>
> se puede ?
> desde ya muchas gracias. es para modo texto, no tiene entorno grafico..
algún comando directo, no se, pero "man tr" + este hilo
http://lists.debian.org/debian-user-spanish/2009/02/msg01396.html que
se trató el mes pasado te pueden dar ideas para hacer un script con mv
Francisco, perdón, antes te respondí a tu mail, lo que te decía para que quede en la lista es esto:
Hombre pues para pasar todos los archivos de un directorio a minúsculas tienes esto:
$ ls |awk '{printf "mv %s %s\n", $1, tolower($1)}' | sh (esto pasa directorios y archivos a minúscula)
Que si lo quieres rebuscar para que solo te pase a minúsculas podrías hacer algo así:
$ ls -l | grep ^d | cut -d' ' -f8 | awk '{printf "mv %s %s\n", $1, tolower($1)}' | sh (esto solo directorios)
Añado también en la lista una opción con find para solo directorios:
$ find . -type d | grep / | cut -d/ -f2 | awk '{printf "mv %s %s\n", $1, tolower($1)}' | sh
para todos los archivos:
$ find . -name * | awk '{printf "mv %s %s\n", $1, tolower($1)}' | sh
Otra forma para todos los archivos es con tr:
$ ls | while read; do mv "$REPLY" $( echo "$REPLY" | tr "[:upper:]" "[:lower:]" ); done
NOTA: Cuidado si copias y pegas con las comillas por el formato.
Perdón por el mail a tu cuenta personal que te envié.
Se me olvidó exponerte solo el caso para archivos solo, sin pasar los directorios; sería:
$ find . -type f | awk '{printf "mv %s %s\n", $1, tolower($1)}' | sh
ATENCIÓN: Te lo pongo con "find" y no con "ls" por que es MUCHÍSIMO más fiable.
Así que mejor utiliza con find.