Cómo cambiar el nombre de un directorio en Linux

fatmawati achmad zaenuri / Shutterstock.com

Cambiar el nombre de un directorio en Linux es fácil y hay muchas maneras de hacerlo. Desde cambiar el nombre de un solo directorio hasta encontrar y cambiar el nombre de muchos, así es como se hace.

→ Índice de contenidos

Tus datos están seguros

Cambiar el nombre de los directorios es algo que todos debemos hacer de vez en cuando.

Podríamos crear un directorio y escribir mal su nombre, y queremos corregirlo. A menudo, el propósito de un directorio cambia con el tiempo o durante la vida de un proyecto, y desea ajustar el nombre para reflejar su nuevo uso. Tal vez haya descomprimido un archivo y haya creado un árbol de directorios con los nombres de los directorios en mayúsculas y le gustaría que estuvieran en minúsculas.

Cualquiera la razon. cambiar el nombre de un directorio no hace nada a los datos contenidos en él. cambia el sendero a esos datos, pero los archivos y directorios dentro de su directorio renombrado no se tocan.

No cambie el nombre de los directorios del sistema. Cambiar la ruta a los archivos y comandos del sistema tendrá un efecto perjudicial en el funcionamiento de su computadora, por decir lo menos. Si necesitas usar sudo para cambiar el nombre de un directorio, a menos que realmente sepa lo que está haciendo, lo más probable es que no debería cambiarle el nombre.

Usando el comando mv

En los casos más sencillos, todo lo que realmente necesitamos es el mv dominio. Esta es una parte integral de cada distribución de Linux, por lo que no hay nada que instalar.

los mv El comando tiene más de 50 años en el momento de escribir este artículo. Proviene de los albores de Unix, cuando los comandos breves y crípticos estaban de moda, probablemente para reducir la cantidad de caracteres que tenían que pasar a lo largo de líneas seriales lentas desde teletipos y terminales tontas hasta la computadora real.

En realidad, significa "mover", y se puede usar para mover archivos de un directorio a otro. Si mueve un archivo a la misma ubicación en la que ya se encuentra y le asigna un nombre nuevo, habrá cambiado el nombre del archivo. Y podemos hacer lo mismo con los directorios.

Hay dos subdirectorios en este directorio.

ls

Listado de dos subdirectorios

Para renombrar un directorio usamos el comando mv. Necesitamos proporcionar el nombre actual del directorio y el nuevo nombre.

mv old-work archive-2

Cambiar el nombre de un directorio con mv

Si el directorio al que desea cambiar el nombre no se encuentra en su directorio actual, proporcione la ruta y el nombre del directorio.

mv ~/htg/old-work ~/htg/archive-2
ls

Cambiar el nombre de un directorio en un directorio diferente con mv especificando la ruta en la línea de comando

Uso del Explorador de archivos

Los exploradores de archivos pueden cambiar el nombre de los directorios. La combinación de teclas en la aplicación Archivos de GNOME es F2. Al resaltar un directorio y tocar la tecla F2, se abre el cuadro de diálogo "Cambiar nombre de carpeta".

Uso del navegador fie para cambiar el nombre de un directorio

Escriba el nuevo nombre y haga clic en el botón verde "Cambiar nombre".

Proporcionar el nuevo nombre de directorio en el explorador de archivos

El directorio se renombra para usted.

El directorio renombrado en la ventana del explorador de archivos

Es tan simple como eso.

El comando de cambio de nombre

Si sus necesidades son más complicadas que el simple cambio de nombre de un directorio, es posible que deba usar el rename dominio. Esto le permite usar expresiones de Perl para renombrar archivos y directorios. Proporciona una forma más potente y flexible de cambiar el nombre de los directorios.

Vamos a estar hablando de la basada en Perl rename dominio. Hay otro comando más antiguo llamado rename que es parte de las utilidades principales de Linux. Probablemente necesitarás instalar el Perl rename comando que queremos usar.

Para evitar conflictos de nombres con los existentes rename comando, el Perl rename se llama comando prename en Fedora y perl-rename en Manjaro. En Ubuntu, el rename y prename Los comandos son enlaces simbólicos que se resuelven en un binario llamado file-rename.

Entonces, en Manjaro, el comando que necesitarás usar perl-renamey en Fedora es prename . En Ubuntu, puedes usar rename o prename.

Para instalar el cambio de nombre de Perl, en Ubuntu debe escribir:

sudo apt install rename

Instalación de renombrar en Ubuntu

En Fedora, el comando es:

sudo dnf install prename

Instalando prename en Fedora

En Manjaro el paquete se llama perl-rename.

sudo pacman -Sy perl-rename

Instalación de perl-rename en Manjaro

Asegúrese de usar el comando apropiado para su distribución si desea trabajar con los ejemplos.

Primeros pasos con renombrar

los rename El comando toma expresiones regulares de Perl y las aplica a un archivo o directorio, o grupo de archivos o directorios.

En nuestro directorio, tenemos una colección de otros directorios.

ls

Una colección de directorios en una combinación de mayúsculas, minúsculas y mayúsculas y minúsculas

Sus nombres son una mezcla de minúsculas, mayúsculas y mayúsculas y minúsculas. Podemos convertirlos todos a minúsculas con una expresión adecuada.

rename 'y/A-Z/a-z/' *
ls

Conversión de directorios a nombres en minúsculas

Todos los directorios ahora están en minúsculas, ya sea que antes estuvieran completamente en mayúsculas o que contuvieran alguna letra mayúscula.

Toda la magia está contenida en la expresión. La expresión está entre comillas simples "'". Esto es lo que significa todo el comando.

  • y: Esto significa buscar cualquier carácter en el primer rango de caracteres y sustituirlo por el carácter correspondiente del segundo rango de caracteres.
  • / AZ / az /: El primer rango son todas las letras de la "A" a la "Z", y el segundo rango son todos los caracteres de la "a" a la "z".
  • *: El comodín asterisco significa aplicar esto a todos los directorios.

En otras palabras, el comando se lee como "para todos los directorios, cambie las letras mayúsculas por la letra minúscula equivalente".

Obviamente, puede cambiar el nombre de un solo directorio con rename, aunque huele a exageración. Serás más rápido usando mv.

rename 's/gamma/epsilon-2/' *
ls

cambiar el nombre de un solo directorio con cambiar el nombre

La “s” en esta expresión significa sustituto. Comprueba cada directorio para ver si su nombre es "gamma". Si es así, lo reemplaza con "epsilon-2". Sin embargo, tenga en cuenta que esto también habría coincidido con un directorio llamado "gamma-zeta", por ejemplo, renombrándolo a "epsilon-2-zeta".

Podemos evitar esto agregando el comienzo de la cadena "^"Y final de la cadena"$" metacaracteres a la primera cláusula de la expresión.

ls
rename 's/^gamma$/epsilon-2/' *
ls

Limitar una acción de cambio de nombre solo a nombres de directorio completos

Esto deja intacto el directorio "epsilon-2".

Uso de renombrar con otros comandos

Podemos usar otros comandos para localizar los directorios que queramos rename para trabajar en. Si tenemos un conjunto de directorios anidados y queremos cambiar el nombre de cualquiera que termine en "-old" para que terminen en "-archive", podemos lograrlo usando find y xargs.

necesitamos usar xargs porque rename no acepta entrada canalizada. los xargs El comando supera ese problema al aceptar la entrada canalizada y agregarla a la línea de comando de otro comando como un parámetro de línea de comando.

Nuestro comando se ve así:

find . -depth -type d -name "*-old" | xargs -r rename "s/old$/archive/"
  • .: Le decimos a find para empezar a buscar en el directorio actual. Esto podría ser cualquier camino, por supuesto.
  • -profundidad: utilice una búsqueda en profundidad. Esto significa que el contenido de los subdirectorios anidados más profundos se procesa antes que los superiores.
  • -tipo d: Busque directorios, no archivos.
  • -nombre "* -viejo": La pista de búsqueda. Estamos buscando directorios con nombres que terminen en "-old".
  • |: Estamos canalizando la salida de find al xargs dominio.
  • xargs-r: Los -r (no se ejecuta si está vacío) significa que no se ejecuta el comando si no hay directorios coincidentes.
  • renombrar "s/antiguo $/archivo/": Los rename comando a ejecutar.

Nuestro árbol de directorios se ve así antes del comando.

El árbol de directorios antes de nuestro comando de cambio de nombre

Ejecutamos nuestro comando:

Nuestro comando de cambio de nombre usando find, xargs y rename

Y podemos ver que se ha cambiado el nombre de todos los directorios coincidentes, incluidos los anidados.

El árbol de directorios después del comando de cambio de nombre

Caballos de carreras

Cambiar el nombre de un directorio no necesita nada más que mv. Si prefiere las aplicaciones GUI, puede usar su explorador de archivos. Si tiene muchos directorios para renombrar, y especialmente si están dispersos en un árbol de directorios, necesitará la flexibilidad de rename.

RELACIONADO: Cómo administrar archivos desde la terminal de Linux: 11 comandos que necesita saber

Subir Change privacy settings