En nuestro artículo anterior, describimos cómo contar la cantidad de archivos y subdirectorios dentro de un directorio determinado. Esta guía le mostrará cómo cambiar el nombre de todos los archivos y directorios a minúsculas en Linux.
Lea también :Cómo encontrar los principales directorios y archivos (espacio en disco) en Linux
Hay varias formas de lograr esto, pero explicaremos dos de los métodos más eficientes y confiables. A los efectos de esta guía, hemos utilizado un directorio llamado Files
que tiene la siguiente estructura:
# find Files -depth
1. Uso de los comandos find, xargs y renombrar juntos
Rename es una sencilla utilidad de línea de comandos para cambiar el nombre de varios archivos a la vez en Linux. Puede usarlo junto con la utilidad de búsqueda para cambiar el nombre de todos los archivos o subdirectorios en un directorio particular a minúsculas de la siguiente manera:
$ find Files -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
Explicación de las opciones utilizadas en el comando anterior.
-depth
– enumera el contenido de cada directorio antes que el propio directorio.-n 1
– da instrucciones a xargs usar como máximo un argumento por línea de comando de buscar salida.
Salida de muestra después de cambiar el nombre de archivos y subdirectorios a minúsculas en Files
directorio.
Otra forma alternativa de usar los comandos find y mv en un script como se explica a continuación.
2. Uso de los comandos find y mv en Shell Script
Primero crea tu script (puedes nombrarlo como prefieras):
$ cd ~/bin $ vi rename-files.sh
Luego agregue el código a continuación.
#!/bin/bash #print usage if [ -z $1 ];then echo "Usage :$(basename $0) parent-directory" exit 1 fi #process all subdirectories and files in parent directory all="$(find $1 -depth)" for name in ${all}; do #set new name in lower case for files and directories new_name="$(dirname "${name}")/$(basename "${name}" | tr '[A-Z]' '[a-z]')" #check if new name already exists if [ "${name}" != "${new_name}" ]; then [ ! -e "${new_name}" ] && mv -T "${name}" "${new_name}"; echo "${name} was renamed to ${new_name}" || echo "${name} wasn't renamed!" fi done echo echo #list directories and file new names in lowercase echo "Directories and files with new names in lowercase letters" find $(echo $1 | tr 'A-Z' 'a-z') -depth exit 0
Guarde y cierre el archivo, luego haga que el script sea ejecutable y ejecútelo:
$ chmod +x rename-files.sh $ rename-files.sh Files #Specify Directory Name
También le puede interesar leer los siguientes artículos relacionados.
- Explicación de "Todo es un archivo" y tipos de archivos en Linux
- fswatch:supervisa los cambios o modificaciones de archivos y directorios en Linux
- Fasd:una herramienta de línea de comandos que ofrece acceso rápido a archivos y directorios
- FSlint:cómo encontrar y eliminar archivos duplicados en Linux
En esta guía, explicamos cómo cambiar el nombre de todos los archivos y directorios a minúsculas en Linux. Si recibe algún error, comuníquese con nosotros a través del formulario de comentarios a continuación. También puede ofrecernos cualquier otro método para hacer lo mismo.