Androide

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

Copiar, mover, renombrar y eliminar desde la terminal de Ubuntu

Copiar, mover, renombrar y eliminar desde la terminal de Ubuntu

Tabla de contenido:

Anonim

Cambiar el nombre de los archivos y directorios es una de las tareas más básicas que a menudo necesita realizar en un sistema Linux.

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. Puede cambiar el nombre de los archivos utilizando un administrador de archivos GUI o mediante el terminal de línea de comandos.

En este tutorial, le mostraremos cómo usar los comandos mv y rename para renombrar archivos y directorios.

Renombrar archivos con el comando mv

El comando mv (short from move) se usa para renombrar o mover archivos de una ubicación a otra. La sintaxis para el comando mv es la siguiente:

mv source destination

El source puede ser uno o más archivos o directorios y el destination puede ser un solo archivo o directorio.

  • Si especifica varios archivos como source , el destination debe ser un directorio. En este caso, los archivos de source se mueven al directorio de destino. Si especifica un solo archivo como source y el destination destino es un directorio existente, el archivo se mueve al directorio especificado. Para cambiar el nombre de un archivo, debe especificar un archivo único como source y archivo único como destination .

Por ejemplo, para cambiar el nombre del archivo file1.txt como file2.txt , ejecutaría:

mv file1.txt file2.txt

Renombrar múltiples archivos con el comando mv

El comando mv puede cambiar el nombre de un solo archivo a la vez, pero se puede usar junto con otros comandos como find o inside bash para o while bucles para cambiar el nombre de varios archivos.

El siguiente ejemplo muestra cómo usar el Bash for loop para cambiar el nombre de todos los archivos .html en el directorio actual cambiando la extensión .html 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 bucle for e itera a través de una lista de todos los archivos con bordes .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 del parámetro de shell para eliminar la parte .html del nombredearchivo.done indica el final del segmento de bucle.

También podemos usar el comando 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 comando find está pasando todos los archivos que terminan con .html en el directorio actual al comando mv uno por uno utilizando el -exec . La cadena {} es el nombre del archivo que se está procesando actualmente.

Como puede ver en los ejemplos anteriores, renombrar múltiples archivos usando el comando mv no es una tarea fácil ya que requiere un buen conocimiento de las secuencias de comandos Bash.

Renombrar archivos con el comando Renombrar

El comando rename se usa para renombrar múltiples archivos. Este comando es más avanzado que mv ya que requiere un conocimiento básico de las expresiones regulares.

Hay dos versiones del comando rename con una sintaxis diferente. En este tutorial, usaremos la versión perl del comando rename . Si no tiene esta versión instalada en su sistema, puede instalarla fácilmente usando el administrador de paquetes de su distribución.

  • Instalar renombrar en Ubuntu y Debian

    sudo apt install rename

    Instalar renombrar en CentOS y Fedora

    sudo yum install prename

    Instalar renombrar en Arch Linux

    yay perl-rename ## or yaourt -S perl-rename

La sintaxis para el comando rename es la siguiente:

rename perlexpr files

El comando rename cambiará el nombre de todos los files acuerdo con la expresión regular perlexpr especificada. Puede acerca de las expresiones regulares perl aquí.

Por ejemplo, el siguiente comando cambiará todos los archivos con la extensión .html a .php :

rename 's/.html/.php/' *.html

Puede usar el argumento -n para imprimir los nombres de los archivos a renombrar, sin renombrarlos.

rename -n 's/.html/.php/' *.html

La salida se verá más o menos 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 comando renombrar no sobrescribirá los archivos existentes. Pase el argumento -f para permitir que los archivos existentes se sobrescriban.

rename -f 's/.html/.php/' *.html

A continuación hay algunos ejemplos más comunes de cómo usar el comando rename:

  • Reemplazar espacios en nombres de archivo con guiones bajos

    rename 'y/ /_/' *

    Convertir nombres de archivo a minúsculas

    rename 'y/AZ/az/' *

    Convertir nombres de archivo a mayúsculas

    rename 'y/az/AZ/' *

Conclusión

En este momento, debe tener una buena comprensión de cómo usar los comandos mv y rename para cambiar el nombre de los archivos. Por supuesto, 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 de la GUI, como Métamorphose.

renombrar terminal mv