Inicio APP y Software ¿Cómo cambiar el nombre de archivos en Linux?

¿Cómo cambiar el nombre de archivos en Linux?

664
0

Introducción

Linux ofrece varias opciones para cambiar el nombre de archivos, incluyendo el uso de la interfaz gráfica y múltiples comandos de terminal dedicados. Esto hace relativamente fácil cambiar el nombre de archivos individuales, pero puede resultar desafiante cambiar el nombre de múltiples archivos a la vez.

En este tutorial, veremos diferentes comandos que puedes utilizar en la terminal de Linux para cambiar el nombre de archivos en Linux.

Prerrequisitos

  • Un sistema que ejecute una distribución de Linux
  • Una cuenta con privilegios de sudo
  • Acceso a la ventana de la terminal/línea de comandos
  • Acceso a un editor de texto, como Vim o Nano

Cambiar el nombre de archivos con el comando mv

El comando mv (move) de Linux se utiliza para mover archivos y directorios desde la terminal. Utiliza la siguiente sintaxis:

mv [opciones] [origen] [destino]

Si especificas 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 en su lugar.

Nota: Aprende más sobre cómo utilizar el comando mv en nuestra guía sobre cómo mover directorios en Linux.

Cambiar el nombre de un solo archivo con el comando mv

Utilizar el comando mv con su sintaxis predeterminada te permite cambiar el nombre de un solo archivo:

mv [opciones] [nombre de archivo actual] [nuevo nombre de archivo]

Por ejemplo, si queremos cambiar el nombre de example1.txt a example2.txt, usaríamos:

mv example1.txt example2.txt

Dado que no hay salida si el comando es exitoso, estamos utilizando el comando ls para comprobar si el nombre ha cambiado:

ls -l

cambiar el nombre de archivos en linux
cambiar el nombre de archivos en linux

Cambiar el nombre de múltiples archivos con el comando mv

Por sí solo, el comando mv cambia el nombre de un solo archivo. Sin embargo, al combinarlo con otros comandos, puedes cambiar el nombre de múltiples archivos al mismo tiempo.

Un método es utilizar el comando find para seleccionar varios archivos con un nombre similar, y luego usar el comando mv para cambiarles el nombre:

Te recomendamos  ¿Cómo instalar archivos .Deb en Ubuntu?

find . -depth -name "[elemento del nombre de archivo actual]" -exec sh -c 'f="{}"; mv -- "$f" "${f%[elemento del nombre de archivo actual]}[elemento del nuevo nombre de archivo]"' \;

Utilizando esta sintaxis, el comando find define un elemento del nombre de archivo actual como parámetro de búsqueda. Luego, -exec ejecuta el comando mv en cualquier archivo que coincida con la búsqueda, cambiando sus nombres actuales por el nuevo.

Por ejemplo, si tenemos example1.txt, example2.txt y example3.txt, y queremos cambiar la extensión a .pdf:

find . -depth -name "*.txt" -exec sh -c 'f="{}"; mv -- "$f" "${f%.txt}.pdf"' \;

cambiar el nombre de archivos en linux 2
cambiar el nombre de archivos en linux 2

Otro método es utilizar el comando mv como parte de un bucle for en un script de bash.

Utilizando el mismo ejemplo, comienza creando y abriendo un archivo de script de bash utilizando un editor de texto como Nano:

sudo nano rename_files.sh

Nota: Aprende más sobre cómo utilizar scripts de bash para gestionar archivos y directorios en Linux.

Agrega las siguientes líneas al script:

#!/bin/bash
for f in *.txt; do
mv -- "$f" "${f%.txt}.pdf"
done

En el script anterior:

  • La primera línea instruye al script a buscar todos los archivos en el directorio actual que terminen con .txt.
  • La segunda línea utiliza el comando mv en cada archivo encontrado para reemplazar la extensión .txt por .pdf.
  • La tercera línea termina el segmento del bucle.

Pulsa Ctrl+X, luego escribe Y y pulsa Enter para guardar los cambios en el script y salir.

Utiliza el comando sh para ejecutar el script:

sh rename_files.sh

cambiar el nombre de archivos en linux 3
cambiar el nombre de archivos en linux 3

Nota: Aprende cómo comparar dos archivos utilizando el comando diff.

Cambiar el nombre de un archivo con el comando rename

El comando rename se utiliza para cambiar el nombre de múltiples archivos o directorios en Linux. Ofrece más funciones que el comando mv, pero puede resultar más desafiante de usar, ya que requiere conocimientos básicos de expresiones Perl.

Cómo instalar el comando rename

En muchas distribuciones de Linux, el comando rename no está disponible de forma predeterminada. Si tu sistema no tiene el comando rename, instálalo con:

  • Para Ubuntu y Debian, utiliza sudo apt install rename
  • Para CentOS y Fedora, utiliza sudo yum install prename
  • Para Arch Linux, utiliza sudo pacman -S rename

Sintaxis y opciones del comando rename

Existen tres tipos de expresiones regulares Perl: coincidencia, sustitución y traducción. El comando rename utiliza expresiones de sustitución y traducción para cambiar los nombres de archivos y directorios.

Te recomendamos  Error 520: ¿Qué Significa y Cómo Solucionarlo?

Las expresiones de sustitución reemplazan una parte del nombre de archivo por otra cadena diferente. Utilizan la siguiente sintaxis:

rename [opciones] 's/[elemento del nombre de archivo]/[reemplazo]/' [nombre de archivo]

Con esta sintaxis, el comando cambia el nombre del archivo reemplazando la primera aparición del elemento del nombre de archivo por el reemplazo. En el comando anterior:

  • rename: Invoca el comando rename.
  • [opciones]: Proporciona un argumento opcional que cambia la forma en que se ejecuta el comando.
  • s: Indica una expresión de sustitución.
  • [elemento del nombre de archivo]: Especifica la parte del nombre de archivo que quieres reemplazar.
  • [reemplazo]: Especifica un reemplazo para la parte del nombre de archivo actual.
  • [nombre de archivo]: Define el archivo que quieres renombrar.

Una expresión de traducción traduce una cadena de caracteres en otra, caracter por caracter. Este tipo de expresión utiliza la siguiente sintaxis:

rename [opciones] 'y/[cadena 1]/[cadena 2]/' [nombre de archivo]

Un ejemplo de un comando rename utilizando una expresión de traducción:

rename 'y/abc/xyz/'

En este ejemplo, se reemplaza cada carácter a en el nombre de archivo por una x, cada b por una y, y cada c por una z.

El comando rename utiliza las siguientes opciones:

  • -a: Reemplaza todas las apariciones del elemento del 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 mensaje antes de sobrescribir los archivos existentes.
  • -l: Reemplaza la última aparición del elemento del nombre de archivo en lugar de la primera.
  • -n: Realiza una simulación, sin realizar cambios permanentes. Se combina mejor 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.

Ejemplos del comando rename

1. Cambiar la extensión del archivo

Volviendo a nuestro último ejemplo, para cambiar la extensión del archivo de .txt a .pdf, utiliza:

Te recomendamos  Fintech Apps: Financiación para jóvenes en el móvil

rename -v 's/.txt/.pdf/' *.txt

cambiar el nombre de archivos en linux 4
cambiar el nombre de archivos en linux 4

2. Reemplazar una parte del nombre de archivo

Reemplazar una parte diferente del nombre de archivo sigue la misma sintaxis. Para cambiar el nombre de example1.txt, example2.txt y example3.txt a test1.txt, test2.txt y text3.txt, utiliza:

rename -v 's/example/test/' *.txt

cambiar el nombre de archivos en linux 5
cambiar el nombre de archivos en linux 5

3. Eliminar una parte del nombre de archivo

La opción rename también te permite eliminar una parte del nombre de archivo omitiendo la parte de reemplazo de la expresión. Por ejemplo, si queremos acortar example a ex:

rename -v 's/ample//' *.txt

cambiar el nombre de archivos en linux 6
cambiar el nombre de archivos en linux 6

4. Cambiar el nombre de archivos con nombres similares

Otro uso de la opción rename es cambiar el nombre de archivos con nombres similares. Por ejemplo, si queremos cambiar el nombre de archivos con example y sample en su nombre a test:

rename -v 's/(ex|s)ample/test/' *.txt

cambiar el nombre de archivos en linux 7
cambiar el nombre de archivos en linux 7

5. Renombrar archivos carácter por carácter

El comando rename también te permite utilizar expresiones de traducción para cambiar el nombre de archivos carácter por carácter. Por ejemplo, si quieres renombrar varios archivos llamados example file reemplazando el espacio en blanco por un guión bajo (_):

rename -v 'y/ /\_/' *.txt

cambiar el nombre de archivos en linux 8
cambiar el nombre de archivos en linux 8

6. Convertir caracteres minúsculos

Para convertir caracteres minúsculos en nombres de archivo a caracteres mayúsculos, utiliza:

rename -v 'y/a-z/A-Z/' *.txt

cambiar el nombre de archivos en linux 9
cambiar el nombre de archivos en linux 9

7. Convertir caracteres mayúsculos

Lo mismo se aplica en sentido contrario si cambiamos el orden de los caracteres mayúsculos y minúsculos en la expresión:

rename -v 'y/A-Z/a-z/' *.TXT

cambiar el nombre de archivos en linux 10
cambiar el nombre de archivos en linux 10

Nota: Ten cuidado al cambiar el caso de los caracteres, ya que esto también cambia la extensión del archivo.

Conclusión

Después de leer este tutorial, deberías ser capaz de cambiar el nombre de archivos utilizando los comandos mv y rename en Linux.

Aprende más sobre cómo utilizar comandos de Linux en nuestra Hoja de trucos de comandos de Linux.