viernes, 7 de diciembre de 2012

Renombrando archivos con cierto patrón de nombre en LINUX (Bash)

Bueno, en Linux, desde la linea de comandos hay muchas formas de renombrar archivos de forma masiva, usando el comando "rename" o con "mv".

Esta forma que describiré hace uso de los comandos "find" "mv" "xargs".

El caso: queremos renombrar varios archivos en un directorio y todos son archivos .png, con diferentes nombres, y en sus nombres comparten cierto patrón, por ejemplo: "img_sony_newtrackfile.png" "img_sony_tablenew.png" "img_sony_newinserttext.png" ... entre otros con diferente patrón.

El caso es que no queremos renombrar todos los archivos png, solo queremos los que tengan el patrón "img_sony", bueno es fácil:

$ find . -iname '*img_sony*' | xargs -i -t mv {} mv {}_old

find . -iname '*img-sony*' - Este comando realiza una búsqueda de los archivos que en su nombre contengan "img_sony"

xargs -i -t mv {} mv {}_old - Este comando toma como entrada la salida del comando "find" a través del pipe | ,y archivo por archivo ejecuta el comando "mv" y renombra el archivo concatenando la cadena "_old" al final del archivo

Links: Encuentra cualquier cosa en Linux con find
Linux Command Directory: xargs

No hay comentarios: