¿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_file
en el directorio actual, cambie el nombre a_file
a 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:]
tr
enlace 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, ls
se 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_file
variable todos los archivos con extensión .jpg.
-v
Opción de actualización agregada al mv
comando según sds sugerido.
mv
para 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
perl
lo 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/rename
enlace 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 prename
para más detalles.fuente
Utilizando
find
por
find
-name
poner 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