Cambiar el nombre de varios archivos y directorios con mv
El comando puede ser un proceso tedioso, ya que implica escribir comandos complejos con conductos, bucles, etc.
Aquí es donde rename
El comando es útil. Cambia el nombre de los archivos dados reemplazando la expresión de búsqueda en su nombre con el reemplazo especificado.
En este tutorial, explicaremos cómo usar el rename
comando para renombrar archivos por lotes.
Instalando rename
#
Hay dos versiones de rename
comando con diferente sintaxis y características. Usaremos la versión Perl de rename
comando.
Si esta versión no está instalada en su sistema, use el administrador de paquetes de su distribución de Linux para instalarlo:
-
Ubuntu y Debian
sudo apt update
sudo apt install rename
-
CentOS y Fedora
sudo yum install prename
-
Arco Linux
yay perl-rename
Usando rename
#
La siguiente es la sintaxis general para rename
comando:
rename [OPTIONS] perlexpr files
El rename
El comando es básicamente un script de Perl. Cambiará el nombre de los files
dados de acuerdo con el perlexpr
especificado expresión regular. Puede leer sobre las expresiones regulares de Perl aquí.
Por ejemplo, el siguiente comando cambiará la extensión de todos los .css
archivos a .scss
:
rename 's/.css/.scss/' *.css
Expliquemos el comando con más detalles:
s/search_pattern/replacement/
- El operador de sustitución..css
- El patrón de búsqueda. Es el primer argumento en el operador de sustitución. Elrename
El comando buscará este patrón en el nombre de archivo dado y, si lo encuentra, lo reemplazará con el argumento de reemplazo..scss
- El reemplazo. El segundo argumento en el operador de sustitución.*.css
- Todos los archivos con extensión “.css”. Comodín (*
) es un símbolo utilizado para representar cero, uno o más caracteres.
Antes de ejecutar el comando real y cambiar el nombre de los archivos y directorios, siempre es una buena idea usar -n
opción que realizará una "ejecución en seco" y le mostrará qué archivos se renombrarán:
rename -n 's/.css/.scss/' *.css
La salida se verá así:
rename(file-0.css, file-0.scss)
rename(file-1.css, file-1.scss)
rename(file-2.css, file-2.scss)
rename(file-3.css, file-3.scss)
rename(file-4.css, file-4.scss)
Por defecto, el rename
El comando no sobrescribe los archivos existentes. Usa el -f
opción que le dice a rename
para sobrescribir los archivos existentes:
rename -f 's/.css/.scss/' *.css
Si quieres rename
para imprimir los nombres de los archivos que se renombraron con éxito, use -v
(detallado) opción:
rename -v 's/.css/.scss/' *.css
file-0.css renamed as file-0.scss
file-1.css renamed as file-1.scss
file-2.css renamed as file-2.scss
file-3.css renamed as file-3.scss
file-4.css renamed as file-4.scss
rename
Ejemplos #
A continuación se muestran algunos ejemplos comunes de cómo usar el comando de cambio de nombre:
Reemplazar espacios en nombres de archivos con guiones bajos #
rename 'y/ /_/' *
Convertir nombres de archivos a minúsculas #
rename 'y/A-Z/a-z/' *
Convertir nombres de archivo a mayúsculas #
rename 'y/a-z/A-Z/' *
Eliminar .bak
de los nombres de archivo #
rename 's/\.bak$//' *.bak
Renombrar .jpeg
y .JPG
nombres de archivo a .jpg
#
rename 's/\.jpe?g$/.jpg/i' *
Conclusión #
El rename
El comando le permite cambiar el nombre de varios archivos a la vez, utilizando expresiones regulares de Perl.
Si tiene alguna pregunta o comentario, no dude en dejar un comentario.