Cambiar el nombre de los archivos es una de las tareas más básicas que a menudo necesita realizar en un sistema Linux. Puede cambiar el nombre de los archivos usando un administrador de archivos GUI o a través del terminal de línea de comandos.
Cambiar el nombre de un solo archivo es fácil, pero cambiar el nombre de varios archivos a la vez puede ser un desafío, especialmente para los usuarios que son nuevos en Linux.
En este tutorial, le mostraremos cómo usar el mv
y rename
comandos para renombrar archivos y directorios.
Renombrar archivos con mv
Comando #
El mv
El comando (sin mover) se usa para cambiar el nombre o mover archivos de una ubicación a otra. La sintaxis para mv
El comando es el siguiente:
mv [OPTIONS] source destination
La source
puede ser uno o más archivos, o directorios y destination
puede ser un solo archivo o directorio.
- Si especifica varios archivos como
source
, eldestination
debe ser un directorio. En este caso, lasource
los archivos se mueven al directorio de destino. - Si especifica un único archivo como
source
y eldestination
el destino es un directorio existente, luego el archivo se mueve al directorio especificado. - Para cambiar el nombre de un archivo, debe especificar un único archivo como
source
y un único archivo comodestination
objetivo.
Por ejemplo, para cambiar el nombre del archivo file1.txt
como file2.txt
ejecutarías:
mv file1.txt file2.txt
Renombrar múltiples archivos con mv
Comando #
El mv
El comando puede cambiar el nombre de un archivo a la vez, pero se puede usar junto con otros comandos como find
o dentro de bash for
o while
bucles para cambiar el nombre de varios archivos.
El siguiente ejemplo muestra cómo usar Bash for loop para cambiar el nombre de todos los .html
archivos en el directorio actual cambiando el .html
extensión a .php
.
for f in *.html; do
mv -- "$f" "${f%.html}.php"
done
Analicemos el código línea por línea:
- La primera línea crea un
for
bucle e itera a través de una lista de todos los archivos que bordean con.html
. - La segunda línea se aplica a cada elemento de la lista y mueve el archivo a uno nuevo reemplazando
.html
con.php
. La parte${file%.html}
está utilizando la expansión de parámetros de shell para eliminar el.html
parte del nombre del archivo. done
indica el final del segmento de bucle.
Aquí hay un ejemplo usando mv
en combinación con find
para lograr lo mismo que arriba:
find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' \;
El find
el comando pasa todos los archivos que terminan en .html
en el directorio actual a mv
uno por uno usando el -exec
opción. La cadena {}
es el nombre del archivo que se está procesando actualmente.
Como puede ver en los ejemplos anteriores, cambiar el nombre de varios archivos usando el mv
El comando no es una tarea fácil, ya que requiere un buen conocimiento de las secuencias de comandos de Bash.
Renombrar archivos con rename
Comando #
El rename
El comando se utiliza para cambiar el nombre de varios archivos. Este comando es más avanzado que mv
ya que requiere algunos conocimientos básicos de expresiones regulares.
Hay dos versiones de rename
Comando con diferente sintaxis. En este tutorial, usaremos la versión Perl de rename
dominio. Si no tiene esta versión instalada en su sistema, puede instalarla fácilmente utilizando el administrador de paquetes de su distribución.
-
Instalar
rename
en Ubuntu y Debiansudo apt install rename
-
Instalar
rename
en CentOS y Fedorasudo yum install prename
-
Instalar
rename
en Arch Linuxyay perl-rename ## or yaourt -S perl-rename
La sintaxis para rename
El comando es el siguiente:
rename [OPTIONS] perlexpr files
El rename
el comando cambiará el nombre de los files
de acuerdo con el perlexpr
especificado expresión regular. Puede leer más sobre las expresiones regulares de Perl aquí.
El siguiente ejemplo cambiará todos los archivos con la extensión .html
a .php
:
rename 's/.html/.php/' \*.html
Puede usar el -n
opción para imprimir los nombres de los archivos a renombrar, sin renombrarlos.
rename -n 's/.html/.php/' \*.html
La salida se verá así:
rename(file-90.html, file-90.php)
rename(file-91.html, file-91.php)
rename(file-92.html, file-92.php)
rename(file-93.html, file-93.php)
rename(file-94.html, file-94.php)
Por defecto, el rename
El comando no sobrescribe los archivos existentes. Pase el -f
opción para permitir que se sobrescriban los archivos existentes:
rename -f 's/.html/.php/' \*.html
A continuación se muestran algunos ejemplos más comunes de cómo usar el rename
comando:
-
Reemplace los espacios en los nombres de archivo con guiones bajos
rename 'y/ /\_/' \*
-
Convertir nombres de archivo a minúsculas
rename 'y/A-Z/a-z/' \*
-
Convertir nombres de archivo a mayúsculas
rename 'y/a-z/A-Z/' \*
Conclusión #
Le mostramos cómo usar el mv
y rename
comandos para renombrar archivos.
También hay otros comandos para cambiar el nombre de los archivos en Linux, como mmv
. Los nuevos usuarios de Linux que se sienten intimidados por la línea de comandos pueden usar herramientas de cambio de nombre por lotes de GUI como Métamorphose.
Si tiene alguna pregunta o comentario, no dude en dejar un comentario.