GNU/Linux >> Tutoriales Linux >  >> Linux

Cambiar el nombre de todos los archivos y nombres de directorios a minúsculas en Linux

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.

  1. Explicación de "Todo es un archivo" y tipos de archivos en Linux
  2. fswatch:supervisa los cambios o modificaciones de archivos y directorios en Linux
  3. Fasd:una herramienta de línea de comandos que ofrece acceso rápido a archivos y directorios
  4. 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.


Linux
  1. Cómo encontrar un archivo en Linux en todos los directorios recursivamente

  2. ¿Buscar todo [nombre de archivo].mp4 y cambiar el nombre de [nombre de archivo].audio?

  3. ¿Linux encuentra y elimina todos los enlaces simbólicos relacionados con un directorio?

  4. ¿Usar Buscar para encontrar cierto directorio y eliminar todos los archivos excepto un directorio?

  5. ¿Cómo encontrar todos los archivos con un directorio principal en particular en Linux?

Buscar comando en Linux (Buscar archivos y directorios)

Cómo cambiar el nombre de archivos y directorios en Linux

Cómo contar archivos en el directorio en Linux

Encuentre archivos y directorios en Linux fácilmente

Linux:busque el número de archivos en un directorio y subdirectorios

¿Cómo cambiar el nombre de todos los archivos con caracteres especiales y espacios en un directorio?