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, eldestinationdebe ser un directorio. En este caso, lasourcelos archivos se mueven al directorio de destino. - Si especifica un único archivo como
sourcey eldestinationel 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
sourcey un único archivo comodestinationobjetivo.
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
forbucle 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
.htmlcon.php. La parte${file%.html}está utilizando la expansión de parámetros de shell para eliminar el.htmlparte del nombre del archivo. doneindica 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
renameen Ubuntu y Debiansudo apt install rename -
Instalar
renameen CentOS y Fedorasudo yum install prename -
Instalar
renameen 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.