Tengo un conjunto de archivos en los que me gustaría aplicar el mismo comando y la salida debe contener el mismo nombre que el archivo procesado pero con una extensión diferente.
Actualmente estoy cambiando el nombre de /my/data/Andrew.doc a /my/data/Andrew.txt. Me gustaría hacer esto para todos los archivos .doc de la carpeta / my / data / y para preservar el nombre.
Probé varias versiones, pero supongo que tengo algo mal en la sintaxis, ya que soy nuevo en Linux.
command-line
bash
Robert
fuente
fuente
Respuestas:
Hay al menos cien mil millones de formas diferentes de abordar esto, pero aquí están los principales contendientes:
The Bash for loop
Utilizando
find
El
find
comando tiene un pequeñoexec
comando encantador que es excelente para ejecutar cosas (con algunas advertencias). Encontrar es mejor que el globbing básico porque realmente puedes filtrar los archivos que estás seleccionando. Tenga cuidado con la sintaxis extraña.Tenga en cuenta que
find
es recursivo, por lo que puede utilizarlo-maxdepth 1
para mantenersefind
en el directorio de trabajo actual.-type f
se puede usar para filtrar archivos normales.Si solo estamos cambiando el nombre de doc a txt ...
El
rename
comando es como sed en la búsqueda. Obviamente, esto no hará nada para convertir el formato.fuente
fuente