Introducción
Cambiar el nombre de los directorios es una de las operaciones 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 la terminal de línea de comandos.
Este artículo explica cómo cambiar el nombre de los directorios usando la línea de comando y el comando mv
Cambiar el nombre de los directorios
En los sistemas operativos Linux y Unix, puede usar el mv
(corto de mover) para cambiar el nombre o mover archivos y directorios de una ubicación a otra.
La sintaxis del mv
para mover directorios es la siguiente:
mv [OPTIONS] source destination
Por ejemplo, para cambiar el nombre del directorio dir1
como dir2
, haga lo siguiente:
mv dir1 dir2
Al cambiar el nombre del directorio, debe especificar exactamente dos argumentos para el comando mv
El primer argumento es el nombre del directorio actual y el segundo es el nuevo nombre.
Es importante tener en cuenta que si dir2
ya existe, dir1
se mueve al directorio dir2
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
Cambiar el nombre de varios directorios
Cambiar el nombre de un solo directorio es una tarea sencilla, 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 al mismo tiempo.
Cambiar el nombre de varios directorios con mv
El mv
solo puede cambiar el nombre de un archivo a la vez. Sin embargo, se puede usar junto con otros comandos como find
o bucles internos para cambiar el nombre de varios archivos a la vez.
Aquí hay un ejemplo que muestra cómo usar el for
en 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
Repasemos el código línea por línea:
- La primera línea crea un bucle y se desplaza por 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 mv
en combinación con find
:
find. -mindepth 1 -prune -type d -exec sh -c 'd="{}"; mv -- "$d" "${d}_$(date +%Y%m%d)"' \;
El find
pasa todos los directorios a mv
uno por uno usando la opción -exec
La cadena {}
es el nombre del directorio que se está procesando actualmente.
Como puede ver en los ejemplos, cambiar el nombre de varios directorios con mv
no es una tarea fácil, ya que requiere un buen conocimiento de los scripts Bash.
Cambiar el nombre de varios directorios con cambiar el nombre
El rename
se utiliza para cambiar el nombre de varios archivos y directorios. Este comando es más avanzado que mv
, ya que requiere conocimientos básicos de expresiones regulares.
Hay dos versiones del rename
de nombre con sintaxis diferente. Usaremos la versión Perl del comando de rename
Los archivos se renombran de acuerdo con la expresión regular de perl proporcionada.
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, use la -n
para imprimir los nombres de los directorios a renombrar sin renombrarlos.
Aquí hay otro ejemplo que muestra cómo convertir los nombres de los directorios a minúsculas:
find. -mindepth 1 -prune -type d | rename 'y/AZ/az/'
Conclusión
Le mostramos cómo usar los mv
para cambiar el nombre de los directorios.