Cómo cambiar el nombre de varios archivos en Linux

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
Cambiar el nombre de varios archivos a la vez en Linux

Cambiar el nombre de varios archivos a la vez en Linux

Requisitos de Software y Convenciones de Línea de Comandos de Linux
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.

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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 \;
  6. 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
  7. 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.

  1. 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/' *
  2. 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
  3. Para poner en mayúscula la primera letra de cada nombre de archivo, utilice el siguiente comando.
    $ rename 's/\b(\w)/\U/g' *
  4. 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' *
  5. 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.

  1. 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'
  2. Este comando reemplazará la primera aparición de » foo » con » bar » en todos los nombres de archivo.
    $ mmv '*foo*' '#1bar#2'
  3. 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 y rejected.log-webserver y los renombrará a access-dbserver.log y rejected-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'
  4. Cambie todos los nombres de archivo a letras minúsculas mediante este comando.
    $ mmv '*' '#l1'
  5. 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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.