¿Hay alguna manera de cambiar el nombre de todos los archivos en un directorio a minúsculas | mayúsculas?
Estoy buscando un comando oneliner .
Me encantó TotalCommander's alt+f7, ahora necesito esa funcionalidad en la Terminal
fuente
¿Hay alguna manera de cambiar el nombre de todos los archivos en un directorio a minúsculas | mayúsculas?
Estoy buscando un comando oneliner .
Me encantó TotalCommander's alt+f7, ahora necesito esa funcionalidad en la Terminal
Para cada archivo a_fileen el directorio actual, cambie el nombre a_filea minúsculas.
for a_file in *;do mv -v "$a_file" `echo "$a_file" | tr [:upper:] [:lower:]` ;done;
Para mayúsculas, invierta los argumentos para [:lower:] [:upper:]
trenlace de referencia de comando
Actualizar
Para aún más control *puede ser reemplazado con ls.
Por ejemplo, en un directorio que contiene 1.txt, 2.txt, 3.txt, 1.jpg, 2.jpg y 3.jpg para filtrar solo archivos * .jpg, lsse pueden usar:
for a_file in $(ls *.jpg);do mv -v $a_file `echo $a_file | tr [:upper:] [:lower:]` ;done;
El código anterior asignará a la a_filevariable todos los archivos con extensión .jpg.
-vOpción de actualización agregada al mvcomando según sds sugerido.
mvpara que vea lo que se está haciendo; es posible que no desee pasar "-f" porque esto puedeHay una utilidad más elegante y general llamada
prename.Escrito por Larry Wall, viene con
perllo más probable es que ya esté disponible en su sistema como/usr/bin/prename(si tiene alternativas de configuración también puede estar disponible como/usr/bin/renameenlace simbólico a través de / etc / alternativas aprename)Al usarlo, puede cambiar el nombre de varios archivos en un comando al proporcionar cualquier expresión perl (incluidas, entre otras, la sustitución
s///o la transcripción de caracterestr///):Ejemplos:
Y así.
Otra cosa buena acerca de prename es que lo protege, en el caso de cambiar el nombre de un archivo a un nombre de archivo existente.
man prenamepara más detalles.fuente
Utilizando
findpor
find-nameponer tu patrón.-maxdepth 0: Solo el directorio actual.por
rename-n, -nono: Sin acción: imprime los nombres de los archivos a renombrar, pero no cambies el nombre.y/source/dest/: Transcribe los caracteres en el espacio del patrón que aparecen en la fuente al carácter correspondiente en el destino.fuente