Tengo estos dos archivos en mi directorio de inicio:
hello_newest.txt
goodbye_newest.txt
Quiero cambiarles el nombre para que la parte "más nueva" del nombre del archivo se elimine por completo, para que vuelvan a aparecer hello.txt
ygoodbye.txt
Este es el comando que estoy ejecutando:
find -name "*.txt" -exec rename 's/newest//i' {} ";"
No arroja un error ni hace nada con los archivos después de ejecutar este comando. he comprobadohttp://www.computerhope.com/unix/rename.htmy parece que debería funcionar según algunos de los ejemplos que existen.
Seguro que es algo sencillo, pero ¿qué me falta?
Respuesta1
Parece que podría ser la versión de Redhat en la que estábamos. El comando -
rename _newest '' *
Parece lograr los mismos objetivos.
Gracias por la ayuda.
Respuesta2
Sintaxis diferente. Pero funcionó para mí:
for i in *.txt; do mv "$i" "`echo $i | sed 's/_[^.]*//'`"; done
Todos los archivos txt se encuentran usando el bucle for y luego los caracteres después del guión bajo se eliminan usando sed.