GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo cambiar el nombre de archivos y directorios en Linux

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 , el destination debe ser un directorio. En este caso, la source los archivos se mueven al directorio de destino.
  • Si especifica un único archivo como source y el destination 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 como destination 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 Debian

    sudo apt install rename
  • Instalar rename en CentOS y Fedora

    sudo yum install prename
  • Instalar rename en Arch Linux

    yay 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.


Linux
  1. Cómo cambiar el nombre de los archivos en Linux

  2. Cómo archivar archivos y directorios en Linux [Parte 2]

  3. Cómo archivar archivos y directorios en Linux [Parte 1]

  4. Cómo cambiar el nombre de un directorio en Linux

  5. Cómo encontrar y eliminar directorios y archivos vacíos en Linux

Cómo cambiar el nombre de un archivo (s) en Linux

Cómo hacer una copia de seguridad de archivos y directorios usando Rsync en Linux

Cómo cambiar el nombre de archivos y directorios en Ubuntu 20.04

Cómo cambiar el nombre de archivos y directorios en Linux

Cómo copiar archivos y directorios en la terminal de Linux

Cómo eliminar archivos y directorios usando la línea de comandos de Linux