Cambiar los archivos de Linux con Rename

Cambiar los archivos de Linux con Rename

Cuando se trabaja con archivos, renombrarlos es una de las acciones más básicas. En Linux, el cambio de nombre de un archivo o directorio se realiza principalmente usando MV. Sin embargo, cuando se trata de cambiar el nombre de múltiples archivos o carpetas, el uso de MV se vuelve complejo. Requiere construir bucles y tuberías complejas para hacer el trabajo. El comando renombrar está diseñado específicamente para tales situaciones.

Rename es una poderosa herramienta de cambio de nombre de lotes que utiliza la expresión de Perl para cambiar el nombre de múltiples archivos y directorios en un solo comando. En esta guía, consulte cómo cambiar el nombre de los archivos con el nombre de nombre.

Instalación de renombro

El comando renombrar no viene preinstalado. Afortunadamente, podemos instalarlo desde los servidores de paquetes oficiales de cualquier distribución de Linux.

Hay dos versiones de herramienta, cada una con su propia sintaxis y característica. Para esta guía, nos centraremos en el que usa perl.

En el caso de Debian/Ubuntu, Rename está disponible como el paquete "renombrar". Instalar el paquete.

$ sudo apt actualización
$ sudo apto instalación de cambio de nombre

En el caso de CentOS y Fedora, el nombre del paquete es diferente. Se conoce como "nombre de pren". Instalar el paquete.

$ sudo yum instalación prename

En el caso de Arch Linux, el nombre del paquete es "Perl-Rename". Instalar el paquete.

$ sudo Pacman -S Perl -Rename

Usando renombrar

Echemos un vistazo a varias formas de usar el comando renombrar.

Estructura de comando básica

La herramienta sigue la siguiente estructura de comando:

$ renombrar

El comando renombrar es en realidad un script perl. Funciona usando la expresión de Perl. Como puede adivinar, usarlo al máximo requiere experiencia en expresiones regulares de Perl.

Aunque existen numerosas formas de construir la expresión de Perl, la siguiente expresión es bastante común para parecer cuando se trabaja con el comando de cambio de nombre.

$ S///

Uso básico

Aquí, tengo un montón de archivos ficticios listos para ser renombrados.

El siguiente comando renombrar cambiará todas las extensiones de archivo de txt a texto.

$ Rename 's/.TXT/.texto/' *.TXT

Aquí, los archivos de destino para cambiar el nombre se expresan usando el símbolo de comodín (*).

Modo detallado

Por defecto, renombrar no imprime mucha salida. Sin embargo, tener detalles más profundos sobre sus acciones puede ayudar en varios escenarios, especialmente cuando se trata de depuración. En modo detallado, cambiar el nombre imprime más información sobre la tarea en curso para comprender mejor e identificar posibles problemas.

Para ejecutar el cambio de nombre en modo detallado, agregue la bandera "-V".

$ RENAME -V 'S/.TXT/.texto/' *.TXT

Carrera seca

Al ejecutar el cambio de nombre, los cambios se hacen permanentes. En muchas situaciones, conducirá a problemas innecesarios. Para evitar cambios no deseados en los nombres de archivos y carpetas, podemos probar el comando utilizando una ejecución seca.

Una ejecución seca es básicamente una ejecución de prueba que no cambia nada con los archivos y carpetas reales. Sin embargo, el uso del modo verboso imprimirá la salida como si el comando realmente se realizara. Por eso siempre es una buena idea correr en seco con el modo detallado. Se recomienda realizar una ejecución seca antes de ejecutar cualquier comando de cambio de nombre en archivos y carpetas importantes.

Para realizar una carrera en seco, agregue la bandera "-n".

$ rename -v -n 's/.TXT/.texto/' *.TXT

Sobrescribir los archivos existentes

El comportamiento predeterminado de renombrar es no sobrescribir los archivos ya existentes. Si no teme sobrescribir los existentes, puede forzar el cambio de nombre a sobrescribir usando la bandera "-f".

$ rename -v -f 's/.TXT/.texto/' *.TXT

Muestra de cambio de nombre de Expresiones Perl

La estructura básica del comando renombrar es muy simple. Su poder principal es la incorporación de las expresiones regulares de Perl. La expresión regular es una forma inteligente de describir un patrón y especificar las acciones. Para principiantes, aquí hay una guía sobre expresión regular usando GREP y EGREP. Aunque usan diferentes herramientas, los fundamentos de la expresión regular aún se aplican.

Aquí hay una lista de algunas expresiones de cambio de nombre de cambio comunes. Tenga en cuenta que estos son solo como referencia. Antes de ponerlos en uso, realice siempre una carrera en seco para asegurarse de que funcione según lo previsto.

Reemplazo de espacios

La siguiente expresión reemplazará los espacios en los nombres de archivo con un bajo.

$ 'y//_/'

Convertir los nombres de archivo a mayúsculas

Necesita los nombres de archivo en mayúsculas? La siguiente expresión de PERL combinada con el comando renombrar hará exactamente eso.

$ 'Y/A-Z/A-Z/'

Convertir los nombres de archivo en minúsculas

La siguiente expresión de PERL, cuando se usa con Rename, cambiará el nombre de los nombres de archivos de mayúsculas a minúsculas.

$ 'Y/A-Z/A-Z/'

Eliminar partes de los nombres de los archivos

Si los nombres de archivo contienen contenidos innecesarios, siempre podemos eliminarlos usando la expresión de Perl. Por ejemplo, para cambiar el nombre de los archivos de copia de seguridad (.bak) Para los archivos originales, simplemente podemos eliminar el ".porción Bak ”del nombre del archivo.

$ 's/\ bak $ //'

Renombrar múltiples patrones de coincidencia

Digamos que estás con texto y archivos txt. A pesar de las diferentes extensiones de archivos, ambas están en el mismo formato. En lugar de tratar con texto y txt, podemos cambiar el nombre de todos a archivos txt.

$ 's/\.TE?XT $/.txt/i '

Del mismo modo, en lugar de tratar con JPEG y JPG, podemos cambiarnos el nombre de todos a JPG.

$ 's/\.JPE?g $/.jpg/i '

Tenga en cuenta que en ambos casos, las extensiones de archivo tienen similitudes, excepto un carácter. Por eso podríamos usar este atajo. Si las extensiones de archivo son completamente diferentes, entonces no funcionará.

Conclusión

El comando renombrar es una herramienta simple para dominar. Es realmente poderoso cuando trabajas con toneladas de archivos y los cambia de nombre en varios formatos. También es seguro incorporar en scripts bash para la automatización. Si eres un principiante, aquí hay una maravillosa guía inicial sobre Scripting de Bash.

Computación feliz!