Cambiar el nombre de los directorios es una de las operaciones más básicas que a menudo necesita realizar en un sistema Linux. Puede cambiar el nombre de los directorios desde el administrador de archivos GUI con un par de clics o usando el terminal de línea de comandos.

Este artículo explica cómo cambiar el nombre de los directorios usando la línea de comandos.

Renombrar directorios

En los sistemas operativos Linux y similares a Unix, puede usar el mv comando (sin mover) para cambiar el nombre o mover archivos y directorios de una ubicación a otra.

La sintaxis del mvcomando para mover directorios es la siguiente:

mv [OPTIONS] source destination

Por ejemplo, para cambiar el nombre del directorio dir1como dir2ejecutaría:

mv dir1 dir2

Al cambiar el nombre de los directorios, debe especificar exactamente dos argumentos para el mvcomando. El primer argumento es el nombre actual del directorio y el segundo es el nuevo nombre.

Es importante señalar que si dir2ya existe, dir1se traslada al dir2directorio.

Para cambiar el nombre de un directorio que no está en el directorio de trabajo actual, debe especificar la ruta absoluta o relativa:

mv /home/user/dir1 /home/user/dir2

Cambio de nombre de varios directorios

Cambiar el nombre de un solo directorio es una tarea simple, pero cambiar el nombre de varios directorios a la vez puede ser un desafío, especialmente para los nuevos usuarios de Linux.

Rara vez es necesario cambiar el nombre de varios directorios a la vez.

Cambiar el nombre de varios directorios conmv

El mvcomando solo puede cambiar el nombre de un archivo a la vez. Sin embargo, se puede usar junto con otros comandos, como find o dentro de los bucles, para cambiar el nombre de varios archivos a la vez.

Aquí hay un ejemplo que muestra cómo usar el for bucle Bash para agregar la fecha actual a los nombres de todos los directorios en el directorio de trabajo actual:

for d in *; do 
  if [ -d "$d" ]; then
    mv -- "$d" "${d}_$(date +%Y%m%d)"
  fi
done

Analicemos el código línea por línea:

  • La primera línea crea un bucle y recorre una lista de todos los archivos.
  • La segunda línea comprueba si el archivo es un directorio.
  • La tercera línea agrega la fecha actual a cada directorio.

Aquí hay una solución para la misma tarea usando mven combinación con find:

find . -mindepth 1 -prune -type d -exec sh -c 'd="{}"; mv -- "$d" "${d}_$(date +%Y%m%d)"' \;

El findcomando pasa todos los directorios mvuno por uno usando la -execopción. La cadena {}es el nombre del directorio que se está procesando actualmente.

Como puede ver en los ejemplos, cambiar el nombre de varios directorios mvno es una tarea fácil, ya que requiere un buen conocimiento de las secuencias de comandos de Bash.

Cambiar el nombre de varios directorios conrename

El renamecomando se utiliza para cambiar el nombre de varios archivos y directorios. Este comando es más avanzado que mvrequiere un conocimiento básico de expresiones regulares.

Hay dos versiones del renamecomando con diferente sintaxis. Usaremos la versión Perl del renamecomando. Los archivos se renombran de acuerdo con la expresión regular de perl dada .

El siguiente ejemplo muestra cómo reemplazar espacios en los nombres de todos los directorios en el directorio de trabajo actual con guiones bajos:

find . -mindepth 1 -prune -type d | rename 'y/ /_/'

Para estar seguro, pase la -nopción renamepara imprimir los nombres de los directorios a renombrar sin renombrarlos.

Aquí hay otro ejemplo que muestra cómo convertir nombres de directorios a minúsculas:

find . -mindepth 1 -prune -type d | rename 'y/A-Z/a-z/'

Conclusión

Le mostramos cómo usar los mvcomandos para cambiar el nombre de los directorios.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.