Rename-Multiple-Files

Como ya sabrás, utilizamos el comando mv para cambiar el nombre o mover archivos y directorios en sistemas operativos tipo Unix. Pero el comando mv no admite el cambio de nombre de varios archivos a la vez. No te preocupes, en este tutorial, vamos a aprender a cambiar el nombre de varios archivos a la vez usando el comando “mmv” en Linux. Este comando se usa para mover, copiar, anexar y cambiar el nombre de archivos masivamente utilizando comodines estándar en sistemas operativos tipo Unix.

La utilidad mmv está disponible en los repositorios predeterminados de los sistemas basados en Debian. Para instalarlo en Debian, Ubuntu, Linux Mint, ejecuta el siguiente comando:

$ sudo apt-get install mmv

Digamos que tienes los siguientes archivos en tu directorio actual.

$ ls
a1.txt a2.txt a3.txt

Ahora quieres cambiar el nombre de todos los archivos que comienzan con la letra “a” a “b”. Por supuesto, puedes hacerlo manualmente en pocos segundos. ¿Pero solo piensas si tienes cientos de archivos y quieres cambiarles el nombre? Es un proceso bastante lento. Aquí es donde mmv viene en ayuda.

Para cambiar el nombre de todos los archivos que comienzan con la letra “a” a “b”, simplemente ejecuta:

$ mmv a\* b\#1

Vamos a verificar si los archivos han sido renombrados o no.

$ ls
b1.txt b2.txt b3.txt

Como puedes ver, todos los archivos que comienzan con la letra “a” (es decir, a1.txt, a2.txt, a3.txt) se renombran a b1.txt, b2.txt, b3.txt.

Explicación

En el ejemplo anterior, el primer parámetro (a \ *) es el patrón ‘de’ y el segundo parámetro es ‘a’ patrón (b \ # 1). Según el ejemplo anterior, mmv buscará cualquier nombre de archivo con la letra “a” y cambiará el nombre de los archivos coincidentes según el segundo parámetro, es decir, el patrón “a”. Utilizamos comodines, como ‘*’, ‘?’ Y ‘[]’, para que coincida con uno o más caracteres arbitrarios. Ten en cuenta que debe escapar de los caracteres comodín, de lo contrario, serán expandidos por el shell y mmv no los entenderá.

El ‘# 1’ en el patrón ‘to’ es un índice de comodín. Coincide con el primer comodín encontrado en el patrón ‘de’. Un ‘# 2’ en el patrón ‘to’ coincidiría con el segundo comodín y así sucesivamente. En nuestro ejemplo, tenemos solo un comodín (el asterisco), así que escribimos un # 1. Y, el signo hash también debe escaparse. Además, puede encerrar los patrones con comillas también.

Incluso puedes cambiar el nombre de todos los archivos con una extensión determinada a una extensión diferente. Por ejemplo, para cambiar el nombre de todos los archivos .txt a formato .docfile en el directorio actual, simplemente ejecuta:

$ mmv \*.txt \#1.doc

Aquí hay otro ejemplo. Digamos que tienes los siguientes archivos.

$ ls
abcd1.txt abcd2.txt abcd3.txt

Deseas reemplazar la primera aparición de abc con xyz en todos los archivos en el directorio actual. ¿Cómo lo harías?

Simple:

$ mmv '*abc*' '#1xyz#2'

Ten en cuenta que en el ejemplo anterior, he incluido los patrones en comillas simples.

Vamos a verificar si “abc” en realidad es reemplazado con “xyz” o no.

$ ls
xyzd1.txt xyzd2.txt xyzd3.txt

¿Lo ves? Los archivos abcd1.txt, abcd2.txt y abcd3.txt han sido renombrados a xyzd1.txt, xyzd2.txt y xyzd3.txt.

Otra característica notable del comando mmv es que puede imprimir los resultados en lugar de cambiar el nombre de los archivos utilizando la opción -n como se muestra a continuación.

$ mmv -n a\* b\#1 
a1.txt -> b1.txt
a2.txt -> b2.txt
a3.txt -> b3.txt

Para más detalles, consulta las páginas man.

$ man mmv

 

Fuente: Original | maslinux

¿Quién está en línea?

Hay 27826 invitados y ningún miembro en línea