¿Cómo puedo cambiar el nombre de todos los archivos en el directorio actual que tienen una extensión particular a otra extensión?

¿Cómo puedo cambiar el nombre de todos los archivos en el directorio actual que tienen una extensión particular a otra extensión?

Posible duplicado:
Cambiar el nombre de varios archivos (cambiar la extensión)

Supongamos que en mi directorio actual/de trabajo tengo cinco archivos:

file1.xvg
file2.xvg
file3.xvg
file1.eps
file2.eps

¿Hay alguna manera de que pueda cambiar el nombre de todos los archivos en el directorio actual/de trabajo con la extensión.xvgy darles la nueva extensión.TXT(dejándo el.epsarchivos solos)? ¿Se puede hacer esto con rename, mvo mmvquizás? Estoy usando Ubuntu Linux. ¡Gracias!

Respuesta1

Para su pregunta particular, este comando funcionará. Verifique que esté satisfecho con el cambio de nombre propuesto y luego suelte el botón -npara continuar con la operación.

rename -n 's/\.xvg$/.txt/' *.xvg

Básicamente, esto significa que para todos los archivos con la .xvgextensión en el directorio actual, busque los archivos que terminan ( $) con .xvgy cambie esa parte del nombre a .txt.

Más detalles y un ejemplo a continuación.


Sí, el renamecomando hará esto por usted. Un breve ejemplo en el que cambio el nombre de todos mis archivos con la .htmlextensión a .html_bak, ignorando otros archivos en el directorio.

me gustaríafuertementerecomiendo usar la -nopción de línea de comandoprimero(explicado a continuación) para ver qué cambios ocurrirían antes de ejecutar el comando real.

Con qué empiezo:

$ ls
a.html  a.txt  b.html  htmlfile

los -nmedios hacen una "prueba"... ¡solo muestra lo que cambiaría, no cambies nada!

$ rename -n 's/\.html$/.html_bak/' *
a.html renamed as a.html_bak
b.html renamed as b.html_bak

Todavía tengo los archivos originales.

$ ls
a.html  a.txt  b.html  htmlfile

Ahora de verdad:

$ rename  's/\.html$/.html_bak/' *

Se ha cambiado el nombre de los archivos.

$ ls
a.html_bak  a.txt  b.html_bak  htmlfile

En los ejemplos anteriores utilizo *para especificar los archivos que se considerarán para la operación de cambio de nombre. Podría haber restringido esto .htmlsolo a archivos con *.html.

Para obtener más información, consulte la página de manual de cambio de nombre.

Respuesta2

Esto se puede hacer así:

rename 's/xvg$/txt/' *.xvg

El patrón global garantiza que sólo *.xvglos archivos se vean afectados.

información relacionada