Cómo Renombrar Archivos en Linux

¿Eres nuevo en el sistema operativo Linux? Si es así, las tareas comunes como renombrar archivos y carpetas pueden ser diferentes de lo que estás acostumbrado. Pero no te preocupes. El concepto de renombrar archivos en Linux es similar a cómo se hace en otros sistemas operativos.

En este tutorial, aprenderás muchas formas de renombrar archivos únicos y múltiples en Linux, tanto a través de la GUI como ejecutando comandos en una terminal.

¡Comencemos!

Prerrequisitos

Para seguir este tutorial, asegúrate de tener lo siguiente:

Renombrar archivos en Linux con el administrador de archivos

Si estás acostumbrado a gestionar archivos a través de la GUI, comencemos este tutorial para renombrar archivos con un administrador de archivos. Los administradores de archivos de GUI son útiles ya que puedes ver los archivos a simple vista. Uno de esos administradores de archivos disponibles en Linux es el antiguo administrador de archivos de GNOME, Nautilus. Este tutorial demuestra cómo renombrar archivos usando el administrador de archivos Nautilus.

Los otros administradores de archivos de Linux son Konqueror, Dolphin, Krusader, Thunar, el administrador de archivos Nemo, y Sunflower administrador de archivos. Estos administradores de archivos realizan la misma tarea, pero renombrar archivos o directorios puede ser ligeramente diferente.

Abre tu terminal y luego ejecuta el siguiente comando para instalar Nautilus (instalar nautilus) con el gestor de paquetes apt si aún no lo tienes en tu máquina. El comando sudo eleva el comando con derechos de sudo/administrador.

sudo apt install nautilus

Renombrar un Solo Archivo

Renombrar un solo archivo en Nautilus solo lleva unos pocos clics, al igual que en el Explorador de archivos de Windows.

Para cambiar el nombre de un solo archivo, abre Nautilus, haz clic derecho en el archivo que deseas renombrar y elige Renombrar, como se muestra a continuación.

Este ejemplo se centra en renombrar archivos, pero el proceso es el mismo para renombrar tanto archivos como directorios.

Renaming a Single File

Ahora escribe el nuevo nombre de archivo para reemplazar el nombre original, presiona Enter o haz clic en Renombrar, ¡y listo!

Entering New File Name

Renombrar varios archivos usando el Gestor de Archivos Nautilus

Al igual que en Windows, Ubuntu te ofrece más opciones sobre cómo quieres renombrar varios archivos a la vez.

Para renombrar varios archivos, selecciona todos los archivos que deseas renombrar, haz clic derecho en cualquiera de ellos y elige Renombrar. Aparecerá una ventana emergente donde podrás elegir cómo quieres renombrar los archivos seleccionados.

Renaming Multiple Files Using Nautilus.

A continuación, hay dos opciones para elegir según cómo quieras renombrar los archivos seleccionados.

  • Renombrar usando una plantilla – Esto te permite renombrar archivos en incrementos.
  • Buscar y reemplazar texto – Te permite buscar y reemplazar ciertos textos en los nombres de archivo.

Renombrar archivos usando una plantilla

Para renombrar archivos usando una plantilla, selecciona la opción Renombrar usando una plantilla.

Ahora ingresa el nombre de reemplazo en el campo vacío para renombrar archivos con una plantilla, haz clic en el botón +Agregar y elige entre las plantillas. Para este tutorial, selecciona la primera (1,2,3,4) y haz clic en Renombrar. Esta opción agrega números incrementales a cada archivo después del nombre de reemplazo (Texto1, Texto2, …).

Renaming Files using a Template

Notifique que los nombres de archivo cambiaron a Texto, seguidos por números incrementales.

Verifying File Names Changed to “Text” with Incrementing Num

Búsqueda y Reemplazo de Palabras en los Nombres de Archivos

Para cambiar el nombre de varios archivos con un nombre de archivo específico, seleccione la opción Buscar y reemplazar texto.

Ingrese el texto en el campo Texto existente y el texto de reemplazo en el campo Reemplazar con, luego haga clic en Renombrar para reemplazar el texto. Esta opción busca y reemplaza ciertos textos en los nombres de archivo.

Replacing Texts in File Names

Ahora, puede ver que ha reemplazado la palabra “Texto” por “Archivo” en cada nombre de archivo.

Verifying the word “Text” was replaced with the word “File” on Each File

Renombrar Archivos con el Comando mv

Si ejecutar comandos es lo tuyo en lugar de navegar en una interfaz gráfica, prepárate para aprender cómo cambiar el nombre de archivos en una terminal. Renombrar archivos en la terminal de Linux es similar a hacerlo en otros entornos de línea de comandos, como PowerShell. Ejecutas los comandos para cambiar el nombre del archivo original con el nombre de archivo objetivo, y eso es todo.

Hay dos escenarios para cambiar el nombre de un archivo. El primero es cambiar el nombre de un archivo desde el directorio de trabajo, y el segundo es especificando la ruta completa. Echa un vistazo a la sintaxis del comando mv a continuación para cambiar el nombre de un archivo, donde el origen es el nombre original y el destino es el nombre de reemplazo.

# Cambiar el nombre de un archivo o directorio en el directorio de trabajo
mv <source> <destination>
# Cambiar el nombre de un archivo especificando la ruta completa
mv <~/mydir/source> <~/mydir/destination>

Renombrar un Solo Archivo con el Comando mv

Mientras la sintaxis del comando mv aún esté fresca en tu mente, intentemos renombrar un solo archivo.

Para demostrar cómo renombrar un solo archivo y directorio:

1. Abre tu terminal y luego ejecuta la serie de comandos a continuación para crear un directorio y dos archivos de texto.

# Crea un directorio llamado 'test'
mkdir test 
# Cambia al directorio ~/test
cd test 
# Crea archivos de texto llamados 'file1.txt' y 'file2.txt'
touch file1.txt file2.txt 

2. Luego, ejecuta el comando ls para listar los archivos dentro del directorio de trabajo. A continuación, puedes ver que file1.txt y file2.txt existen en el directorio ~/test.

Listing Files in the Working Directory

3. Ejecuta cualquiera de los siguientes comandos mv para renombrar file1.txt como file10.txt.

# Renombrar un archivo en el directorio de trabajo
mv file1.txt file10.txt

# Renombrar un archivo especificando la ruta completa
mv ~/test/file1.txt ~/test/file10.txt

Renombrar un directorio es lo mismo que renombrar un archivo, así: mv ~/test ~/demo. El símbolo ~ denota el directorio de inicio.

4. Finalmente, vuelve a ejecutar el comando ls para listar los archivos en el directorio de trabajo.

A continuación, puedes ver que file1.txt ahora se ha renombrado como file10.txt.

Confirming file1.txt is renamed as file10.txt

Renombrar Múltiples Archivos con un Bucle For

Si estás demasiado ocupado con otras tareas y quieres cambiar el nombre de todos los archivos de una vez, necesitarás usar una instrucción de bucle for como la que se muestra a continuación.

Copia el código tal cual, pégalo en tu terminal y presiona Enter. El código escanea cada archivo de texto en el directorio de trabajo y les cambia el nombre por “File” seguido de un número incrementado.

# Declara una variable con el valor establecido en 1
i=1 
# Escanea cada archivo de texto en el directorio de trabajo
for file in *.txt; 
# Itera el comando de abajo hasta que se escaneen todos los archivos
do 
  # Cambia el nombre de cada archivo por "File" seguido del número incrementado ($i)
	mv -- "$file" "File$i.txt"
  # Incrementa en 1 el valor actual de la variable de número
  i=$((i+1)) 
done

Pegar el código en tu terminal funciona bien, pero como buena práctica, es mejor que crees un archivo de script para ejecutar en su lugar.

A continuación, puedes ver en acción cómo el código cambia el nombre de todos los archivos.

Renaming Files with a For Loop

Cambiando el nombre de archivos en Linux con la utilidad rename

Si estás renombrando un solo archivo en tu rutina diaria, entonces el comando mv será suficiente. Pero quizás estés apuntando a renombrar varios archivos con el mismo patrón a la vez. Por ejemplo, renombrar archivos que comienzan con una cierta palabra (archivo). En ese caso, instala la utilidad rename en su lugar.

La utilidad rename renombra múltiples archivos, cambia formatos de nombres de archivo y sobrescribe archivos.

Para instalar la utilidad rename, ejecuta cualquiera de los siguientes comandos dependiendo de la distribución de Linux en la que estés trabajando.

# Instalar la utilidad rename con el gestor de paquetes apt para Ubuntu, Debian y Linux Mint
sudo apt install rename
# Instalar la utilidad rename con el gestor de paquetes dnf para CentOS, Fedora y Red Hat
sudo dnf install prename
# Instalar la utilidad rename con el gestor de paquetes pacman para Arch Linux / Manjaro Linux
sudo pacman -S perl-rename

A continuación puedes ver la sintaxis del comando rename.

rename <options> <perlexpr> <files>

Renombrar Múltiples Archivos

Con la sintaxis del comando rename en mente, ahora puedes renombrar archivos que tienen el mismo patrón. Lo bueno del comando rename es que no necesitas declarar una función de bucle para renombrar varios archivos como lo hiciste en la sección “Renombrar Múltiples Archivos con un Bucle For”.

Quizás quieras renombrar archivos con ciertas palabras en ellos. Si es así, echa un vistazo a la expresión regular Perl ('s/file/myfile/') en el comando de muestra a continuación. Las expresiones regulares Perl definen un patrón de cadena basado en el lenguaje de programación Perl.

Para evitar renombrar por error otros archivos, lista todos los archivos afectados antes de renombrarlos agregando la opción -n, como se muestra a continuación.

rename -n 's/file/myfile/' *.txt
Listing Affected Files Before Renaming

Ahora ejecuta cualquiera de los comandos rename a continuación para reemplazar la palabra file con myfile en el nombre de cada archivo de texto dentro del directorio de trabajo o el directorio ~/test/*.txt.

En la expresión Perl ('s/file/myfile/'), el s denota sustitución, lo que significa que estás renombrando archivos. Observa que se agrega la opción -v para devolver qué archivos renombró el comando.

# Reemplaza 'file' con 'myfile' en el nombre de cada archivo en el directorio de trabajo
rename -v 's/file/myfile/' *.txt
# Reemplaza 'file' con 'myfile' en el nombre de cada archivo en el directorio ~/test
rename -v 's/file/myfile/' ~/test/*.txt

A continuación, puedes ver que cada palabra “file” en los archivos de texto se ha renombrado a “myfile”.

Renaming a Files with the rename Command

Si prefieres renombrar todos los archivos en su lugar, elimina la extensión de archivo al especificar la ruta del archivo, por ejemplo, rename -v 's/file/myfile/' ~/test/*

Cambiando Extensiones de Archivo

Además de los nombres de archivo, el comando rename también cambia las extensiones de archivo. Quizás hayas creado archivos con la extensión de archivo incorrecta. En ese caso, especificarás la extensión de archivo a cambiar en una expresión Perl cuando ejecutes el comando rename.

Ejecuta el comando rename a continuación para cambiar la extensión de todos los archivos (*) de .txt a .html en el directorio ~/test. El símbolo $ en la expresión Perl coincide con el final de una cadena (.txt) para cada nombre de archivo, por lo que el comando solo cambia las extensiones de archivo .txt. Y al igual que al renombrar varios archivos, agrega la opción -v para listar cada cambio que realiza el comando.

rename -v 's/.txt$/.html/' *.txt

Para eliminar todas las extensiones de archivo en su lugar, elimina la cadena de reemplazo en la expresión Perl, así: rename -v 's/.txt$//' *.txt

Como puedes ver en la imagen a continuación, las extensiones .txt se cambiaron a .html

Changing File Extensions from .txt to .html

Cambiando Nombres de Archivo a Mayúsculas y Minúsculas

En lugar de extensiones de archivo incorrectas, puede que estés lidiando con nombres de archivo en minúsculas y viceversa. Quizás estés intentando encontrar un archivo específicamente en mayúsculas, sin saber que el nombre del archivo está en minúsculas.

Linux es sensible a mayúsculas y minúsculas, así que asegurémonos de que tengas correctamente la mayúscula y minúscula de cada nombre de archivo. La distinción entre mayúsculas y minúsculas es básicamente la diferencia entre textos en minúsculas y en mayúsculas.

Ejecuta cualquiera de los comandos rename a continuación para cambiar todos los nombres de archivo en minúsculas (a-z) en el directorio de trabajo (*) a mayúsculas (A-Z) y viceversa.

# Cambiar nombre de archivo de minúsculas a mayúsculas
rename -v 'y/a-z/A-Z/' *
# Cambiar nombre de archivo de mayúsculas a minúsculas
rename -v 'y/A-Z/a-z/' *

A continuación puedes ver ambos resultados de cambiar la mayúscula y minúscula de un nombre de archivo.

Changing File Name from Lowercase to Uppercase and Vice Versa

Reemplazo y eliminación de espacios en los nombres de archivo

Al igual que con la mayúscula y minúscula de un nombre de archivo, puede que tengas problemas para encontrar archivos si tienen espacios en sus nombres. Arreglemos eso reemplazando los espacios con un carácter o eliminando los espacios por completo.

Ejecuta el comando rename a continuación para reemplazar los espacios en todos los nombres de archivo con un guion bajo (_) en el directorio de trabajo. Dado que el guion bajo es un metacaracter, escápalo con una barra invertida (\\_) para declarar literalmente el guion bajo. Los metacaracteres son caracteres especiales con significados especiales en un programa de computadora.

Observe el g en la expresión Perl que indica al comando que reemplace todas las coincidencias (espacios), y no solo la primera.

rename -v 's/ /\\_/g' *

A continuación, puede ver que el comando reemplazó todos los espacios con guiones bajos.

Replacing spaces with underscores in a file name

Para eliminar todos los espacios en un nombre de archivo en lugar de llenarlos con un carácter, ejecute el comando a continuación.

En la expresión Perl a continuación, el asterisco después del espacio en blanco (/ *) coincide con todas las ocurrencias de espacios en un nombre de archivo y no solo la primera. El carácter de reemplazo es vacío (//), por lo que el comando rename elimina todos (g) los espacios.

rename -v "s/ *//g" *

Ahora puede ver que se eliminan todos los espacios de cada nombre de archivo.

Removing all spaces in filenames

Capitalizar la primera letra de cada palabra en un nombre de archivo

Si prefiere mantener los espacios y capitalizar la primera letra de cada palabra en un nombre de archivo, necesitará una expresión Perl más compleja. Eche un vistazo al comando de muestra a continuación.

La expresión Perl a continuación coincide con cualquier carácter individual (\\w) en un límite de palabra (\\b) siempre que el carácter no sea un punto ni un apóstrofe (?<![.'\\'']). El comando rename luego traducirá esa letra a mayúscula (u$&).

rename -v 's/(?<![.'\\''])\\b\\w*/\\u$&/g' *

A continuación, puede ver que cada palabra en los nombres de archivo comienza con una letra mayúscula mientras deja las extensiones de archivo intactas.

Capitalizing First Letter of Each Word in File Names

Conclusión

A lo largo de este tutorial, has aprendido muchas formas de cambiar el nombre de archivos en Linux a través de la interfaz gráfica y la terminal de línea de comandos. Ahora tienes una comprensión sólida de cómo manipular nombres tanto para archivos individuales como para varios archivos a la vez.

¿Por qué no aprender a hacer scripts en el shell de Linux y crear un script para automatizar el proceso de cambiar nombres de archivos en Linux?

Source:
https://adamtheautomator.com/rename-files-in-linux/