Introducción
Linux ofrece varias opciones para cambiar el nombre de los archivos, incluido el uso de la GUI y varios comandos de terminal dedicados. Esto hace que sea relativamente fácil cambiar el nombre de archivos individuales, pero puede ser un desafío cambiar el nombre de varios archivos a la vez.
En este tutorial, repasaremos diferentes comandos que puede usar en la terminal de Linux para cambiar el nombre de los archivos en Linux.
Requisitos previos
- Un sistema que ejecuta una distribución de 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
Renombra archivos con el comando mv
Linux mv
El comando (mover) se usa para mover archivos y directorios desde la terminal. Utiliza la siguiente sintaxis:
mv [options] [source] [destination]
Si especifica un directorio como destino al utilizar mv
comando, el archivo fuente se mueve a ese directorio. Si el destino es otro nombre de archivo, el mv
El comando cambia el nombre del archivo de origen a ese nombre en su lugar.
Cambie el nombre de un solo archivo con el comando mv
Usando el mv
El comando con su sintaxis predeterminada le permite cambiar el nombre de un solo archivo:
mv [options] [current file name] [new file name]
Por ejemplo, si queremos cambiar el nombre de example1.txt en ejemplo2.txt , usaríamos:
mv example1.txt example2.txt
Dado que no hay salida si el comando es exitoso, estamos usando ls
comando para verificar si el nombre ha cambiado:
ls -l
Cambie el nombre de varios archivos con el comando mv
Por sí solo, el mv
El comando 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 find
comando para seleccionar varios archivos con un nombre similar, luego use el mv
comando para renombrarlos:
find . -depth -name "[current file name element]" -exec sh -c 'f="{}"; mv -- "$f" "${f%[current file name element]}[new file name element]"' \;
Con esta sintaxis, find
El comando define un elemento del nombre del archivo actual como parámetro de búsqueda. A continuación, -exec
ejecuta el mv
Comando en cualquier archivo que coincida con la búsqueda, cambiando sus nombres de archivo actuales al nuevo.
Por ejemplo, si tenemos example1.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 mv
comando como parte de un <strong>for</strong>
bucle en un script bash.
Usando el mismo ejemplo, comience creando y abriendo un archivo de script bash usando un editor de texto como Nano:
sudo nano rename_files.sh
Agregue las siguientes líneas al script:
#!/bin/bash
for f in *.txt; do
mv -- "$f" "${f%.txt}.pdf"
done
En el guión de arriba:
- La primera línea le indica al script que busque todos los archivos en el directorio actual que terminan en .txt .
- La segunda línea usa el
mv
comando en cada archivo encontrado para reemplazar el .txt extensión con .pdf . - La tercera línea finaliza el segmento de bucle.
Presiona Ctrl+X , luego escribe Y y presiona Entrar para guardar los cambios en el script y salir.
Usa el sh
comando para ejecutar el script:
sh rename_files.sh
Cambie el nombre del archivo con el comando de cambio de nombre
El rename
El comando se usa para cambiar el nombre de varios archivos o directorios en Linux. Ofrece más funciones que el mv
pero puede ser más difícil de usar ya que requiere un conocimiento básico de las expresiones de Perl.
Cómo instalar el comando de cambio de nombre
En muchas distribuciones de Linux, el rename
El comando no está disponible de forma predeterminada. Si a su sistema le falta el rename
comando, 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
renombrar
cambiar el nombre de la sintaxis y las opciones del comando
Hay tres tipos de expresiones regulares de Perl:match , sustituir y traducir . El rename
El comando utiliza expresiones de sustitución y traducción para cambiar los nombres de archivos y directorios.
Las expresiones de sustitución reemplazan una parte del nombre del archivo con una cadena diferente. Usan la siguiente sintaxis:
rename [options] 's/[filename element]/[replacement]/' [filename]
Con esta sintaxis, el comando cambia el nombre del archivo reemplazando la primera aparición del elemento de nombre de archivo con el reemplazo . En el comando anterior:
rename
:Invoca el comando de cambio de nombre.[options]
:proporciona un argumento opcional que cambia la forma en que se ejecuta el comando.s
:indica una expresión sustituta.[filename element]
:especifica la parte del nombre de archivo que desea reemplazar.[replacement]
:especifica un reemplazo para la parte del nombre de archivo actual.[filename]
:define el archivo que desea cambiar de nombre.
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 [options] 'y/[string 1]/[string 2]/' [filename]
Un ejemplo de un rename
comando usando una expresión de traducción:
rename 'y/abc/xyz/'
En este ejemplo, cada a el carácter en el nombre del archivo se reemplaza por una x , cada b por un y , y cada c por un z .
El renombrar El comando utiliza las siguientes opciones:
-a
:Reemplaza todas las apariciones del elemento de nombre de archivo en lugar de solo la primera.-f
:Obliga a sobrescribir los archivos existentes.-h
:muestra el texto de ayuda.-i
:muestra un aviso antes de sobrescribir los archivos existentes.-l
:Reemplaza la última aparición del elemento de nombre de archivo en lugar de la primera.-n
:Realiza una ejecución de prueba, sin realizar cambios permanentes. Mejor combinado con la salida detallada (-v
).-s
:cambia el nombre del objetivo en lugar del enlace simbólico.-v
:muestra una versión detallada de la salida.-V
:Muestra la versión del comando.
Ejemplos de comandos de cambio de nombre
Volviendo a nuestro último ejemplo, para cambiar la extensión del archivo de .txt a .pdf , usa:
rename -v 's/.txt/.pdf/' *.txt
Reemplazar una parte diferente del nombre del archivo sigue la misma sintaxis. Para cambiar el nombre de example1.txt , ejemplo2.txt y ejemplo3.txt a prueba1.txt , prueba2.txt y texto3.txt , usa:
rename -v 's/example/test/' *.txt
El rename
La opción también le permite eliminar una parte del nombre del archivo omitiendo la parte de reemplazo de la expresión. Por ejemplo, si queremos acortar example en ex :
rename -v 's/ample//' *.txt
Otro uso para rename
La opción es cambiar el nombre de los archivos con nombres similares. Por ejemplo, si queremos cambiar el nombre de los archivos con example y muestra en su nombre para probar :
rename -v 's/(ex|s)ample/test/' *.txt
El rename
El comando también le permite usar expresiones de traducción para cambiar el nombre de los archivos carácter por carácter. Por ejemplo, si desea cambiar el nombre de varios archivos llamados archivo de ejemplo reemplazando el espacio en blanco con un guión bajo (_ ):
rename -v 'y/ /\_/' *.txt
Para convertir caracteres en minúsculas en nombres de archivos en caracteres en mayúsculas, use:
rename -v 'y/a-z/A-Z/' *.txt
Lo contrario también funciona si cambiamos el orden de los caracteres en mayúsculas y minúsculas en la expresión:
rename -v 'y/A-Z/a-z/' *.TXT