El cambio de nombre de archivos en sistemas Linux generalmente se maneja con el comando mv
(mover). La sintaxis es mv old.txt new.txt
. Bastante simple, pero ¿qué pasa si tenemos varios archivos que necesitan ser renombrados a la vez, incluso cientos de ellos? La utilidad mv predeterminada no puede manejar el cambio de nombre de más de un archivo a menos que hagamos un poco de scripting. También hay otras utilidades que podemos instalar para resolver el problema, como rename
y mmv
.
En esta guía, le mostraremos cómo usar el comando mv
, así como las herramientas rename
y mmv
para cambiar el nombre de varios archivos en su distribución de Linux. Repasaremos varios ejemplos para que pueda comprender la sintaxis y cómo usar cada método.
En este tutorial aprenderás:
- Cómo cambiar el nombre de varios archivos a la vez con el comando mv
- Cómo instalar rename en las principales distribuciones de Linux
- Cómo instalar mmv en las principales distribuciones de Linux
- Cómo usar mmv, a través de ejemplos de comandos
- Cómo usar rename, a través de ejemplos de comandos
Categoría | Requisitos, Convenciones o Versión de software Usado |
---|---|
Sistema | Cualquier distribución de Linux |
Software | mv, renombrar, mmv |
Otro | Acceso privilegiado a su sistema Linux como root o mediante el comando sudo . |
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando$ – requiere que los comandos de linux dados se ejecuten como un usuario normal sin privilegios |
Cambiar el nombre de varios archivos a la vez con el comando mv
Cambiar el nombre de varios archivos con el comando mv es más fácil si sabe un poco de scripting Bash. Eche un vistazo a algunos de los ejemplos a continuación para ver algunos usos comunes de este método.
- El siguiente comando agregará un .extensión de archivo txt a todos los archivos de su directorio de trabajo actual.
$ for i in $( ls ); do mv $i $i.txt; done
- Para eliminar una extensión de archivo de todos los archivos, puede usar este comando.
$ for i in $( ls *.txt ); do mv $i ${i%.*}; done
- También podemos cambiar la extensión de archivo de cada archivo. El siguiente comando cambiará todos los archivos con el .extensión de registro a .txt.
$ for i in *.log; do mv -- "$i" "${i%.log}.txt"; done
- También puede usar el comando buscar, junto con la opción
-exec
o el comando xargs para cambiar el nombre de varios archivos a la vez. Este comando append .bak a cada archivo que comience con el patrón «archivo».$ find . -type f -name 'file*' -print0 | xargs --null -I{} mv {} {}.bak
- Este comando utiliza find y la opción
-exec
para añadir «_backup» a todos los archivos que terminan en el .extensión txt.$ find . -name "*.txt" -exec mv {} {}_backup \;
- También podemos usar xargs para hacer lo mismo. Este comando aceptará la entrada estándar del comando
ls
, luego usará xargs para agregar «_backup» a todos los archivos que terminen en el .extensión txt.$ ls *.txt | xargs -I{} mv {} {}_backup
- Para cambiar todos los archivos con el .txt en el directorio actual para tener solo letras minúsculas, este comando hará el trabajo.
$ for i in `ls *.txt`; do mv "$i" "`echo $i | tr '' ''`"; done
La ventaja de este método es que no necesitamos ningún software Linux adicional, solo usamos la utilidad nativa mv, y a veces se combina con ls, find o xargs. Sin embargo, como hemos visto en estos ejemplos, puede ser bastante complejo hacer algo simple como cambiar el nombre de algunos archivos. Echa un vistazo a algunos de los otros métodos a continuación para ver algunas opciones más convenientes que requieren instalación.
Instalar utilidad de cambio de nombre
Es posible que la distribución de Linux ya tenga rename
instalada de forma predeterminada. En caso de que aún no esté instalado, puede usar el comando apropiado a continuación para instalarlo a través del administrador de paquetes de su sistema.
Para instalar rename en Ubuntu, Debian y Linux Mint:
$ sudo apt install rename
Para instalar rename en CentOS, Fedora, AlmaLinux y Red Hat:
$ sudo dnf install prename
Para instalar rename en Arch Linux y Manjaro:
$ sudo pacman -S perl-rename
ejemplos de comando de cambio de nombre
El comando rename
acepta la expresión perl para hacer el cambio de nombre real. Si ya está familiarizado con esta sintaxis, renombrar será muy fácil de usar. Si no, no te preocupes, tenemos algunos ejemplos a continuación que te ayudarán a acostumbrarte.
Aquí hemos compilado algunos de los escenarios más comunes en los que necesitaría cambiar el nombre de varios archivos a la vez. Estos comandos asumen que los archivos que desea renombrar están en su directorio de trabajo actual. Siempre puede especificar la ruta a otros directorios si lo desea.
Hay algunas opciones que puede usar con rename
. La opción -n
le mostrará qué cambios va a realizar rename, sin hacer los cambios. Esto le ayuda a evitar cualquier cambio indeseable. La opción -v
(detallada) imprimirá los nombres de los archivos que se hayan renombrado correctamente.
- Este comando cambiará el nombre de los archivos en mayúsculas a minúsculas.
$ rename 'y/A-Z/a-z/' *
O, para convertir minúsculas a mayúsculas:
$ rename 'y/a-z/A-Z/' *
- Para cambiar la extensión de un grupo de archivos, utilice la siguiente sintaxis. Este ejemplo en particular se convertirá .archivos de registro .archivos txt.
$ rename 's/\.log$/\.txt/' *.log
- Para poner en mayúscula la primera letra de cada nombre de archivo, utilice el siguiente comando.
$ rename 's/\b(\w)/\U/g' *
- Para eliminar todos los espacios en blanco de los nombres de archivo, ejecute este comando.
$ rename "s/ *//g" *
O, para reemplazar espacios con guiones bajos:
$ rename 's/\s+/_/g' *
- Para eliminar una extensión de archivo de un grupo de archivos, utilice la siguiente sintaxis. Este ejemplo eliminará el .extensión bak.
$ rename 's/\.bak$//' *.bak
Install mmv utility
Puede usar el comando apropiado a continuación para instalar mmv a través del administrador de paquetes de su sistema.
Para instalar mmv en Ubuntu, Debian y Linux Mint:
$ sudo apt install mmv
Para instalar mmv en CentOS, Fedora, AlmaLinux y Red Hat:
$ sudo dnf install mmv
Para instalar mmv en Arch Linux y Manjaro:
$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si
ejemplos de comandos mmv
La característica más atractiva de mmv es su capacidad para renombrar fácilmente muchos archivos aceptando comodines en el comando. Esto le permite agregar o eliminar fácilmente ciertos patrones de los nombres de archivo, o incluso organizar el texto dentro de los nombres. Eche un vistazo a algunos de los ejemplos a continuación para aprender la sintaxis de la herramienta mmv y vea algunos de los comandos más comunes que puede encontrar ejecutando con ella. Tenga en cuenta que puede usar la opción -n
con mmv para previsualizar los cambios.
- Use este ejemplo para cambiar la extensión de archivo en un grupo de archivos. Este comando cambiará todos los archivos con extensión .htm a .HTML.
$ mmv '*.htm' '#1.html'
- Este comando reemplazará la primera aparición de » foo » con » bar » en todos los nombres de archivo.
$ mmv '*foo*' '#1bar#2'
- El siguiente comando le da una idea de cómo puede usar mmv para reorganizar partes de un nombre de archivo. Este ejemplo tomará archivos como
access.log-dbserver
yrejected.log-webserver
y los renombrará aaccess-dbserver.log
yrejected-webserver.log
, respectivamente. Para que esto funcione, solo necesitamos tener un patrón consistente, como el guión y el punto en este caso.
$ mmv '*.log-*' '#1-#2.log'
- Cambie todos los nombres de archivo a letras minúsculas mediante este comando.
$ mmv '*' '#l1'
- Por el contrario, cambie los nombres de los archivos a todas las letras mayúsculas con esta.
$ mmv '*' '#u1'
Pensamientos finales
En esta guía, aprendimos varios métodos diferentes para cambiar el nombre de varios archivos simultáneamente en Linux. También vimos una multitud de ejemplos de línea de comandos que pueden cubrir muchos escenarios diferentes o adaptarse fácilmente a situaciones similares. El cambio de nombre masivo se puede hacer a través de utilidades bash nativas como mv, ls, xargs y find, o podemos instalar la utilidad mmv o renombrar para hacernos la vida un poco más fácil. Cada método tiene sus fortalezas y debilidades, así que usa el que creas que sea más conveniente para ti.