Introducción
Linux proporciona varias opciones para cambiar el nombre de archivos, incluido el uso de la interfaz gráfica de usuario y varios comandos de terminal dedicados. Esto hace que sea relativamente fácil cambiar el nombre de archivos individuales, pero puede ser difícil cambiar el nombre de varios archivos a la vez.
En este tutorial, repasaremos diferentes comandos que puede usar en el terminal Linux para cambiar el nombre de los archivos en Linux.
Requisitos previos
- Un sistema que ejecuta una distribución Linux
- Una cuenta con privilegios sudo
- Acceso a la ventana de terminal/línea de comandos
- Acceso a un editor de texto, como Vim o Nano
Renombrar archivos con el comando mv
el comando 3907> (mover) se utiliza para mover archivos y directorios desde el terminal. Utiliza la siguiente sintaxis:
mv
Si especifica un directorio como destino al usar el comando mv
, el archivo de origen se mueve a ese directorio. Si el destino es otro nombre de archivo, el comando mv
cambia el nombre del archivo de origen a ese nombre.
Nota: Obtenga más información sobre el uso del comando mv en nuestra guía para mover directorios en Linux.
Cambiar el nombre de un solo archivo con el Comando mv
El uso del comando mv
con su sintaxis predeterminada le permite cambiar el nombre de un solo archivo:
mv
Por ejemplo, si queremos cambiar el nombre de example1.txt en el ejemplo2.txt, usaríamos:
mv example1.txt example2.txt
Dado que no hay salida si el comando tiene éxito, estamos utilizando el comando ls
para verificar si se ha cambiado el nombre:
ls -l
Cambie el nombre de varios archivos con el comando mv
Por sí solo, el comando mv
cambia el nombre de un solo archivo. Sin embargo, combinarlo con otros comandos le permite cambiar el nombre de varios archivos al mismo tiempo.
Un método es usar el comando find
para seleccionar varios archivos con un nombre similar, luego use el comando mv
para cambiarles el nombre:
find . -depth -name "" -exec sh -c 'f="{}"; mv -- "$f" "${f%}"' \;
Usando esta sintaxis, el comando find
define un elemento del nombre de archivo actual como el parámetro de búsqueda. A continuación, -exec
ejecuta el comando mv
en cualquier archivo que coincida con la búsqueda, cambiando sus nombres de archivo actuales al nuevo.
Por ejemplo, si tenemos ejemplo1.txt, ejemplo2.txt, y ejemplo3.txt y desea cambiar la extensión a .pdf:
find . -depth -name "*.txt" -exec sh -c 'f="{}"; mv -- "$f" "${f%.txt}.pdf"' \;
Otro método es usar el comando mv
como parte de un bucle <strong>for</strong>
en un script bash.
Con el mismo ejemplo, comience creando y abriendo un archivo de script bash con un editor de texto como Nano:
sudo nano rename_files.sh
Nota: Obtenga más información sobre el uso de scripts bash para administrar archivos y directorios en Linux.
Agregue las siguientes líneas al script:
#!/bin/bashfor f in *.txt; do mv -- "$f" "${f%.txt}.pdf"done
En el guión de arriba:
- La primera línea indica al script que busque todos los archivos del directorio actual que terminan con.txt.
- La segunda línea utiliza el comando
mv
en cada archivo encontrado para reemplazar el .extensión txt con .pdf. - La tercera línea termina el segmento de bucle.
Presione Ctrl + X, luego escriba Y y presione Entrar para guardar los cambios en el script y salir.
Utilice el comando sh
para ejecutar el script:
sh rename_files.sh
Renombrar archivo con el comando renombrar
El comando rename
se utiliza para renombrar varios archivos o directorios en Linux. Ofrece más funciones que el comando mv
, pero puede ser más difícil de usar, ya que requiere conocimientos básicos de expresiones Perl.
Cómo instalar el comando renombrar
En muchas distribuciones de Linux, el comando rename
no está disponible de forma predeterminada. Si a su sistema le falta el comando rename
, instálelo con:
- Para Ubuntu y Debian, use
sudo apt install rename
- Para CentOS y Fedora, use
sudo yum install prename
- Para Arch Linux, use
sudo pacman -S
rename
rename Sintaxis y Opciones de comandos
Hay tres tipos de expresiones regulares de Perl: y traducir. El comando rename
utiliza expresiones de sustitución y traducción para cambiar los nombres de archivos y directorios.
Expresiones sustitutivas sustituyen una parte del nombre de archivo por una cadena diferente. Utilizan la siguiente sintaxis:
rename 's///'
Con esta sintaxis, el comando cambia el nombre del archivo reemplazando la primera aparición del elemento filename por el reemplazo. En el comando anterior:
-
rename
: Invoca el comando renombrar. -
: Proporciona un argumento opcional que cambia la forma en que se ejecuta el comando.
-
s
: Indica una expresión sustituta. -
: Especifica la parte del nombre de archivo que desea reemplazar.
-
: Especifica un reemplazo para la parte del nombre de archivo actual.
-
: Define el archivo que desea renombrar.
Una expresión de traducción traduce una cadena de caracteres a otra, carácter por carácter. Este tipo de expresión utiliza la siguiente sintaxis:
rename 'y///'
Un ejemplo de un comando rename
que utiliza una expresión translate:
rename 'y/abc/xyz/'
En este ejemplo, cada carácter a en el nombre de archivo se reemplaza por una x, cada b por una y y cada c por una z.
El comando cambiar nombre utiliza las siguientes opciones:
-
-a
: Reemplaza todas las ocurrencias del elemento filename en lugar de solo el primero. -
-f
: Fuerza la sobreescritura de archivos existentes. -
-h
: Muestra el texto de ayuda. -
-i
: Muestra un mensaje antes de sobrescribir archivos existentes. -
-l
: Reemplaza la última aparición del elemento filename en lugar de la primera. -
-n
: Realiza un simulacro, sin realizar cambios permanentes. Mejor combinado con la salida detallada (-v
). -
-s
: Cambia el nombre del destino en lugar del enlace simbólico. -
-v
: Muestra una versión detallada de la salida. -
-V
: Muestra la versión del comando.
renombrar ejemplos de comandos
1. Cambiar la extensión de archivo
Volviendo a nuestro último ejemplo, para cambiar la extensión de archivo .txt a .pdf, uso:
rename -v 's/.txt/.pdf/' *.txt
2. Reemplazar una Parte de un nombre de archivo
Reemplazar una parte diferente del nombre de archivo sigue la misma sintaxis. Para cambiar el nombre del ejemplo1.txt, ejemplo2.txt, y ejemplo3.txt a test1.txt, test2.txt, y texto3.txt, uso:
rename -v 's/example/test/' *.txt
3. Eliminar una parte de un nombre de archivo
La opción rename
también le permite eliminar una parte del nombre de archivo omitiendo la parte de reemplazo de la expresión. Por ejemplo, si queremos acortar el ejemplo a ex:
rename -v 's/ample//' *.txt
4. Renombrar archivos con Nombres similares
Otro uso de la opción rename
es renombrar archivos con nombres similares. Por ejemplo, si queremos cambiar el nombre de los archivos con ejemplo y muestra en su nombre para probar:
rename -v 's/(ex|s)ample/test/' *.txt
5. Renombrar archivos Carácter por carácter
El comando rename
también le permite usar expresiones de traducción para renombrar archivos carácter por carácter. Por ejemplo, si desea cambiar el nombre de varios archivos con el nombre de archivo de ejemplo reemplazando el espacio en blanco con un guion bajo (_):
rename -v 'y/ /\_/' *.txt
6. Convertir caracteres en minúsculas
Para convertir caracteres en minúsculas en nombres de archivo, utilice:
rename -v 'y/a-z/A-Z/' *.txt
7. Convertir caracteres mayúsculas
El reverso también funciona si cambiamos el orden de los caracteres mayúsculas y minúsculas en la expresión:
rename -v 'y/A-Z/a-z/' *.TXT
Nota: Tenga cuidado al cambiar la mayúscula de caracteres, ya que esto también cambia la extensión del archivo.
Conclusión
Después de leer este tutorial, debería poder cambiar el nombre de los archivos utilizando los comandos mv
y rename
en Linux.
Obtenga más información sobre el uso de comandos de Linux en nuestra Hoja de trucos de Comandos de Linux.