Cómo utilizar el comando rename en Linux

Familiarérrese con la potencia de cambio de nombre de archivos del mundo Linux y brinde mv—y tú mismo—un descanso. Rename es flexible, rápido y, a veces, incluso más fácil.  Aquí hay un tutorial de esta potencia de un comando.

¿Qué tiene de malo mv?

No hay nada de malo en mv . El comando un buen trabajo, y se encuentra en todas las distribuciones de Linux, en macOS y en otros sistemas operativos similares a Unix. Así que siempre está disponible. Pero a veces solo necesitas una excavadora, no una pala.

El mv tiene un propósito en la vida, y es mover archivos. Es un efecto secundario feliz que se pueda usar para mover un archivo existente en un nuevo archivo, con un nuevo nombre. El efecto neto es cambiar el nombre del archivo, por lo que obtenemos lo que queremos. Pero mv no es una herramienta dedicada de cambio de nombre de archivos.

Cambiar el nombre de un solo archivo con mv

Utilizar mv Para cambiar el nombre de un archivo, escriba mv, un espacio, el nombre del archivo, un espacio y el nuevo nombre que desea que tenga el archivo. A continuación, pulse Intro.

Puedes usar ls para comprobar que se ha cambiado el nombre del archivo.

mv oldfile.txt newfile.txt
ls *.txt

Cambiar el nombre de varios archivos con mv

Las cosas se complican cuando desea cambiar el nombre de varios archivos. mv no tiene capacidad para ocuparse de cambiar el nombre de varios archivos. Debes recurrir al uso de algunos ingeniosos trucos de Bash. Eso está bien si conoce algún fu de línea de comandos de grado medio, pero la complejidad de cambiar el nombre de varios archivos con mv contrasta con la facilidad de uso mv para cambiar el nombre de un solo archivo.

Las cosas se intensifican rápidamente.

Digamos que tenemos un directorio con una variedad de archivos en él, de diferentes tipos. Algunos de estos archivos tienen una extensión “.prog”. Queremos renombrarlos en la línea de comandos para que tengan una extensión “.prg”.

¿Cómo discutimos? mv en hacer eso por nosotros? Echemos un vistazo a los archivos.

ls *.prog -l

Aquí hay una forma de hacerlo que no recurre a escribir un archivo de script Bash real.

for f in *.prog; do mv -- "€f" "€{f%.prog}.prg"

¿DId que funcionan? Revisemos los archivos y veamos.

ls *.pr*

Entonces, sí, funcionó. Todos son archivos “.prg” ahora, y no hay archivos “.prog” en el directorio.

¿Lo que acaba de pasar?

¿Qué hizo realmente ese largo comando? Vamos a desglosarlo.

for f in *.prog; do mv -- "€f" "€{f%.prog}.prg"

La primera parte inicia un bucle que va a procesar cada archivo “.prog” en el directorio, a su vez.

La siguiente parte dice lo que el procesamiento hará hacer. Está utilizando mv para mover cada archivo a un nuevo archivo. El nuevo archivo se nombraré con el nombre del archivo original, excluyendo la parte “.prog”. En su lugar, se utilizará una nueva extensión de “.prg”.

Tiene que haber una manera más simple

Definitivamente. Es el rename mandar.

rename no forma parte de una distribución estándar de Linux, por lo que deberá instalarla. También tiene un nombre diferente en diferentes familias de Linux, pero todas funcionan de la misma manera. Solo tendrá que sustituir el nombre de comando apropiado de acuerdo con el sabor de Linux que esté utilizando.

en las distribuciones derivadas de Ubuntu y Debian que instala rename Así:

sudo apt-get install rename

En las distribuciones derivadas de Fedora y RedHat se instalan prename Así. Nótese la “p” inicial, que significa Perl.

sudo dnf install prename

Para instalarlo en Manjaro Linux utilice el siguiente comando. Tenga en cuenta que el comando de cambio de nombre se llama perl-rename.

sudo pacman -Syu perl-rename

Hagámoslo de nuevo

Y esta vez usaremos rename. Haremos retroceder el reloj para que tengamos un conjunto de archivos “.prog”.

ls *.prog

Ahora usemos el siguiente comando para cambiarles el nombre. A continuación, comprobaremos con ls si funcionó. Recuerda sustituir rename con el nombre de comando apropiado para su Linux si no está utilizando Ubuntu o un Linux derivado de Debian.

rename 's/.prog/.prg/' *.prog
ls *.pr*

Eso funcionó, ahora son todos archivos “.prg”, y no quedan archivos “.prog” en el directorio.

¿Qué pasó con este momento?

Vamos a explicar ese pedacito de magia, en tres partes.

El Primero part es el nombre del comando, rename (o prename o perl-rename , para las demás distribuciones).

El último parte es *.prog, que dice rename para operar en todos los archivos “.prog”.

El medio parte define el trabajo que queremos que se realice en cada nombre de archivo. El s significa sustituto. El primer término (.prog) es lo que rename buscará en cada nombre de archivo y en el segundo término (.prg) es con lo que se sustituirá.

La parte media de lae comando, o expresión central, es un Perl ‘expresión regular‘ y es lo que da el rename comanda su flexibilidad.

Cambiar otras partes de un nombre de archivo

Hemos cambiado las extensiones de nombre de archivo hasta ahora, modifiquemos otras partes de los nombres de archivo.

En el directorio hay muchos archivos de código fuente C. Todos los nombres de archivo tienen el prefijo “slang_”. Podemos comprobarlo con ls.

ls sl*.c

Vamos a reemplazar todas las ocurrencias de “slang_” por “sl_”. El formato del comando ya nos es familiar. Solo estamos cambiando el término de búsqueda, el término de reemplazo y el tipo de archivo.

rename 's/slang_/sl_' *.c

Esta vez estamos buscando archivos “.c” y buscando “slang_”. Siempre que se encuentra “slang_” en un nombre de archivo, se sustituye por “sl_”.

Te puede ser útil:  Cómo usar el Administrador de archivos incorporado de Android 6.0

Podemos comprobar el resultado de ese comando repitiendo el ls desde arriba con los mismos parámetros:

ls sl*.c

Eliminación de parte de un nombre de archivo

Podemos eliminar una parte de un nombre de archivo sustituyendo el término de búsqueda por nada.

ls *.c
rename 's/sl_//' *.c
ls *.c

Podemos ver desde el ls ordenar que nuestros archivos “.c” estén todos precedidos de “sl_”. Vamos a deshacernos de eso por completo.

El rename sigue el mismo formato que antes. Vamos a buscar archivos “.c”. El término de búsqueda es “sl_”, pero no hay un término de sustitución. Dos barras traseras sin nada entre ellas no significan nada, una cuerda vacía.

rename procesará cada archivo “.c” a su vez. Buscará “sl_” en el nombre del archivo. Si se encuentra, será reemplazado por nada. En otras palabras, se elimina el término de búsqueda.

El segundo uso de la ls confirma que el prefijo “sl_” se ha eliminado de todos los archivos “.c”.

Limitar los cambios a partes específicas de los nombres de archivo

Usemos ls para ver los archivos que tienen la cadena “param” en su nombre de archivo. Luego usaremos rename para reemplazar esa cadena con el “parámetro” de cadena. Usaremos ls una vez más para ver el efecto el rename ha tenido en esos archivos.

ls *param*
rename 's/param/parameter' *.c
ls *param*

Se encuentran cuatro archivos que tienen “param” en su nombre de archivo. param.c, param_one.c y param_two.c tienen “param” en el empezar de su nombre. third_param.c tiene “param” en el fin de su nombre, justo antes de la extensión.

El rename va a buscar “param” en todas partes en el nombre del archivo, y reemplazarlo con “parámetro” en todos los casos.

El segundo uso de la ls El comando nos muestra que eso es exactamente lo que ha sucedido. Ya sea que “param” estuviera al principio o al final del nombre del archivo, se ha reemplazado por “parámetro”.

Podemos usar los metacaracteres de Perl para refinar el comportamiento de la expresión media. Los metacaracteres son símbolos que representan posiciones o secuencias de caracteres. Por ejemplo ^ significa “inicio de una cadena”, significa “fin de una cadena”, y . significa cualquier carácter individual (aparte de un carácter de nueva línea).

Vamos a usar el inicio del metacaracter de cadena ( ^ ) para restringir nuestra búsqueda al inicio de los nombres de archivo.

ls *param*.c
rename 's/^parameter/value/' *.c
ls *param*.c
ls value*.c

Los archivos que renombramos anteriormente se enumeran, y podemos ver que la cadena “parámetro” está al principio de tres nombres de archivo y está al final de uno de los nombres de archivo.

Nuestro rename Utiliza el inicio de línea (^) metacaracter antes del término de búsqueda “parámetro”. Esto indica rename para considerar que solo se ha encontrado el término de búsqueda si está al principio del nombre del archivo. El “parámetro” de la cadena de búsqueda se ignorará si se encuentra en cualquier otro lugar del nombre del archivo.

Consultar con ls, podemos ver que el nombre de archivo que tenía “parámetro” en el fin del nombre de archivo no se ha modificado, pero los tres nombres de archivo que tenían “parámetro” en el empezar de sus nombres han sido reemplazados por el término sustituto “valor”.

El poder de rename radica en el poder de Perl. Todos los poder de Perl está a su disposición.

Búsqueda con agrupaciones

rename tiene aún más trucos bajo la manga. Consideremos el caso en el que puede tener archivos con cadenas similares en sus nombres. No son exactamente las mismas cadenas, por lo que una simple búsqueda y sustitución no funcionará aquí.

En este ejemplo usamos ls para comprobar qué archivos tenemos que empiezan por “str”. Hay dos de ellos, cuerda.c y estrangulamiento.c. Podemos renombrar ambas cadenas a la vez usando una técnica llamada agrupación.

La expresión central de esto rename Buscará cadenas dentro de los nombres de archivo que tengan la secuencia de caracteres “STRI” o “stra” donde esas secuencias son seguidas inmediatamente por “ng”. En otras palabras, nuestro término de búsqueda va a buscar “cadena” y “estrangulado”. El término de sustitución es “bang”.

ls str*.c
rename 's/(stri|stra)ng/bang/' *.c
ls ban*.c

Usando ls una segunda vez confirma que la cuerda.c se ha convertido en bang.c y strangle.c ahora es bangle.c.

Uso de traducciones con cambio de nombre

El rename puede realizar acciones en nombres de archivo denominados traducciones. Un ejemplo simple de una traducción sería forzar un conjunto de nombres de archivo en mayúsculas.

En rename A continuación, observe que no estamos utilizando un comando s/ Para iniciar la expresión central, estamos usando y/. Esto indica rename no estamos realizando una sustitución; estamos realizando una traducción.

El a-z term es una expresión de Perl que significa todos los caracteres en minúsculas de la secuencia de la a a la z. Del mismo modo, el A-Z term representa todas las letras mayúsculas de la secuencia de la A a la Z.

La expresión central de este comando podría parafrasearse como “si alguna de las letras minúsculas de la a a la z se encuentra en el nombre del archivo, reemplácelas con los caracteres correspondientes de la secuencia de caracteres en mayúsculas de la A a la Z”.

Para forzar los nombres de archivo de todos los archivos “.prg” a mayúsculas, utilice este comando:

Cambie el nombre ‘y/a-z/A-Z/’ *.prg

ls *.PRG

El ls nos muestra que todos los nombres de archivo “.prg” están ahora en mayúsculas. De hecho, para ser estrictamente precisos, ya no son archivos “.prg”. Son “. PRG” archivos. Linux no se puede hacer casos.

Podemos invertir ese último comando invirtiendo la posición del a-z y A-Z términos en la expresión central.

renombrar ‘y/A-Z/a-z/’ *. PRG

ls *.prg

Tú (Wo| No aprenda Perl en cinco minutos

Familiarizarse con Perl es un tiempo bien empleado. Pero para comenzar a usar las capacidades de ahorro de tiempo de la rename No necesita tener mucho conocimiento de Perl para cosechar grandes beneficios en potencia, simplicidad y tiempo.

¿Qué tan útil te resultó el artículo?

¡Haz click en una estrella para valorar!

Valoración media / 5. Votos totales:

¡No hay votos hasta ahora! Sé el primero en valorar este artículo.

Utilizamos cookies para personalizar el contenido y los anuncios, para ofrecer funciones de redes sociales y para analizar nuestro tráfico. También compartimos información sobre su uso de nuestro sitio con nuestros socios de redes sociales, publicidad y análisis. View more
Cookies settings
Aceptar
Política de privacidad y cookies
Privacy & Cookies policy
Cookie name Active
El presente Política de Privacidad establece los términos en que Alternativa.click usa y protege la información que es proporcionada por sus usuarios al momento de utilizar su sitio web. Esta compañía está comprometida con la seguridad de los datos de sus usuarios. Cuando le pedimos llenar los campos de información personal con la cual usted pueda ser identificado, lo hacemos asegurando que sólo se empleará de acuerdo con los términos de este documento. Sin embargo esta Política de Privacidad puede cambiar con el tiempo o ser actualizada por lo que le recomendamos y enfatizamos revisar continuamente esta página para asegurarse que está de acuerdo con dichos cambios.

Información que es recogida

Nuestro sitio web podrá recoger información personal por ejemplo: Nombre,  información de contacto como  su dirección de correo electrónica e información demográfica. Así mismo cuando sea necesario podrá ser requerida información específica para procesar algún pedido o realizar una entrega o facturación.

Uso de la información recogida

Nuestro sitio web emplea la información con el fin de proporcionar el mejor servicio posible, particularmente para mantener un registro de usuarios, de pedidos en caso que aplique, y mejorar nuestros productos y servicios.  Es posible que sean enviados correos electrónicos periódicamente a través de nuestro sitio con ofertas especiales, nuevos productos y otra información publicitaria que consideremos relevante para usted o que pueda brindarle algún beneficio, estos correos electrónicos serán enviados a la dirección que usted proporcione y podrán ser cancelados en cualquier momento. Alternativa.click está altamente comprometido para cumplir con el compromiso de mantener su información segura. Usamos los sistemas más avanzados y los actualizamos constantemente para asegurarnos que no exista ningún acceso no autorizado.

Cookies

Una cookie se refiere a un fichero que es enviado con la finalidad de solicitar permiso para almacenarse en su ordenador, al aceptar dicho fichero se crea y la cookie sirve entonces para tener información respecto al tráfico web, y también facilita las futuras visitas a una web recurrente. Otra función que tienen las cookies es que con ellas las web pueden reconocerte individualmente y por tanto brindarte el mejor servicio personalizado de su web. Nuestro sitio web emplea las cookies para poder identificar las páginas que son visitadas y su frecuencia. Esta información es empleada únicamente para análisis estadístico y después la información se elimina de forma permanente. Usted puede eliminar las cookies en cualquier momento desde su ordenador. Sin embargo las cookies ayudan a proporcionar un mejor servicio de los sitios web, estás no dan acceso a información de su ordenador ni de usted, a menos de que usted así lo quiera y la proporcione directamente. Usted puede aceptar o negar el uso de cookies, sin embargo la mayoría de navegadores aceptan cookies automáticamente pues sirve para tener un mejor servicio web. También usted puede cambiar la configuración de su ordenador para declinar las cookies. Si se declinan es posible que no pueda utilizar algunos de nuestros servicios.

Enlaces a Terceros

Este sitio web pudiera contener en laces a otros sitios que pudieran ser de su interés. Una vez que usted de clic en estos enlaces y abandone nuestra página, ya no tenemos control sobre al sitio al que es redirigido y por lo tanto no somos responsables de los términos o privacidad ni de la protección de sus datos en esos otros sitios terceros. Dichos sitios están sujetos a sus propias políticas de privacidad por lo cual es recomendable que los consulte para confirmar que usted está de acuerdo con estas. Control de su información personal En cualquier momento usted puede restringir la recopilación o el uso de la información personal que es proporcionada a nuestro sitio web.  Cada vez que se le solicite rellenar un formulario, como el de alta de usuario, puede marcar o desmarcar la opción de recibir información por correo electrónico.  En caso de que haya marcado la opción de recibir nuestro boletín o publicidad usted puede cancelarla en cualquier momento. Esta compañía no venderá, cederá ni distribuirá la información personal que es recopilada sin su consentimiento, salvo que sea requerido por un juez con un orden judicial. Alternativa.click Se reserva el derecho de cambiar los términos de la presente Política de Privacidad en cualquier momento.
Save settings
Cookies settings