Cómo cambiar el nombre de un directorio en Linux

Cómo cambiar el nombre de un directorio en Linux

Cambiar el nombre de un directorio en Linux es fácil y hay muchas formas de hacerlo. Aquí se explica cómo hacerlo, desde cambiar el nombre de un directorio hasta buscar y cambiar el nombre de muchos.

Tus datos están seguros

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

Podemos crear un directorio y escribir mal su nombre y queremos arreglarlo. A menudo, el propósito de un directorio cambia con el tiempo o durante la vida de un proyecto, y desea cambiar el nombre para reflejar su nuevo uso. Es posible que haya descomprimido un archivo y haya creado un árbol de directorios con los nombres de los directorios en mayúsculas y desea que estén en minúsculas.

Independientemente de la causa. cambiar el nombre de un directorio no hace nada con los datos que contiene. Cambia la ruta a esos datos, pero los archivos y directorios dentro de su directorio renombrado no se ven afectados.

No cambie el nombre de los directorios del sistema. Cambiar la ruta a los archivos y comandos del sistema, por decirlo suavemente, afectará negativamente el funcionamiento de su computadora. Si necesita usar sudopara cambiar el nombre de un directorio, a menos que realmente sepa lo que está haciendo, es probable que no deba cambiar el nombre.

Usando el comando mv

En los casos más simples, todo lo que realmente necesitamos es un mvcomando. Es una parte integral de cada distribución de Linux, por lo que no hay nada que instalar.

En mvel momento de escribir este artículo, el equipo tiene más de 50 años. Se remonta a los primeros días de Unix, cuando los comandos cortos y crípticos estaban de moda, probablemente para reducir la cantidad de caracteres que tenían que viajar a través 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 está y le da un nuevo nombre, cambiará el nombre del archivo. Y podemos hacer lo mismo con los directorios.

Este directorio tiene dos subdirectorios.

ls

Para cambiar el nombre de un directorio, usamos el comando mv. Necesitamos especificar el nombre del directorio actual y el nuevo nombre.

mv old-work archive-2

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

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

Uso del explorador de archivos

Los exploradores de archivos pueden cambiar el nombre de los directorios. La clave en la aplicación Archivos de GNOME es F2. Al seleccionar un directorio y presionar F2, se abre el cuadro de diálogo Cambiar nombre de carpeta.

Ingrese un nuevo nombre y haga clic en el botón verde Renombrar.

El directorio ha sido renombrado para usted.

Es tan simple.

Cambiar nombre de comando

Si sus necesidades son más complejas que simplemente cambiar el nombre de un directorio, es posible que deba usar renameel comando. 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.

Hablaremos de un comando basado en Perl rename. Hay otro comando más antiguo rename que forma parte de las utilidades principales de Linux. Probablemente necesitará instalar el comando Perl renameque queremos usar.

Para evitar conflictos de nombres con un renamecomando existente, el comando Perl renamese invoca prenameen Fedora y perl-renameManjaro. En Ubuntu, ambos comandos renamey prenameson enlaces simbólicos que se resuelven en un archivo binario llamado file-rename.

Entonces, en Manjaro necesitarás usar el comando perl-renamey en Fedora necesitarás usar prename. renameEn Ubuntu puedes usar prename.

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

sudo apt install rename

En Fedora, el comando es:

sudo dnf install prename

En Manjaro, el paquete se llama perl-rename.

sudo pacman -Sy perl-rename

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

Primeros pasos con el cambio de nombre

El comando renametoma expresiones regulares de Perl y las aplica a un archivo o directorio, oa un grupo de archivos o directorios.

Nuestro catálogo tiene una colección de otros catálogos.

ls

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

Todos los directorios ahora están en minúsculas, ya sea que antes estuvieran completamente en mayúsculas o que tuvieran una letra mayúscula extraña.

Toda la magia está en la expresión. La expresión se escribe entre comillas simples » '«. Eso es lo que quiere decir todo el equipo.

  • y: Esto significa buscar cualquier carácter en el primer rango de caracteres y reemplazarlo con el carácter correspondiente en el 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».
  • *: Un asterisco comodín significa que esto se aplica a todos los directorios.

En otras palabras, el comando dice «para todos los directorios, reemplace las letras mayúsculas con sus letras minúsculas equivalentes».

Obviamente, puede cambiar el nombre de un solo directorio con rename, aunque esto parece redundante. Serás más rápido usando mv.

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

La «S» en esta expresión significa reemplazo. Comprueba cada directorio para ver si su nombre es «gamma». Si es así, lo reemplaza con «epsilon-2». Tenga en cuenta, sin embargo, que esto también coincidiría con un directorio llamado «gamma-zeta», por ejemplo, renombrándolo a «epsilon-2-zeta».

Esto se puede evitar agregando los metacaracteres de inicio de línea » ^» y final de línea » $» a la primera cláusula de la expresión.

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

Esto deja intacto el directorio «epsilon-2».

Usar renombrar con otros comandos

Podemos usar otros comandos para encontrar los directorios en los que queremos renametrabajar. Si tenemos un conjunto de directorios anidados y queremos renombrar todos los que terminan con «-old» para que terminen con «-archive», podemos lograr esto usando findy xargs.

Necesitamos usar xargsporque renameno acepta entrada canalizada. El comando xargssoluciona este problema tomando la entrada canalizada y agregando otro comando a la línea de comando como un parámetro de línea de comando.

Nuestro equipo 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. Por supuesto, puede ser de cualquier manera.
  • -profundidad: utiliza la búsqueda en profundidad primero. Esto significa que los contenidos de los subdirectorios anidados más profundos se procesan antes que los superiores.
  • -type d: busca directorios, no archivos.
  • -name «*-old»: pista de búsqueda. Estamos buscando directorios con nombres que terminen en «-old».
  • |: canalizamos la salida del comando de búsqueda al xargscomando.
  • xargs -r: -r(no ejecutar si está vacío) significa no ejecutar el comando si no hay directorios adecuados.
  • cambie el nombre de «s/old$/archive/»: renamecomando para ejecutar.

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

Ejecutemos nuestro comando:

Y podemos ver que todos los directorios relevantes, incluidos los subdirectorios, han sido renombrados.

No necesitas nada más que mv. Si prefiere aplicaciones GUI, puede usar el explorador de archivos. Si necesita cambiar el nombre de muchos directorios, especialmente si están dispersos por todo el árbol de directorios, necesitará flexibilidad rename.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *