Para ejecutar comandos masivamente sobre una lista de ficheros en linux se pueden combinar los comandos find y xargs.
find es bastante conocido, básicamente lo que hace es buscar archivos según los criterios que le indiquemos.
xargs coge una lista y ejecuta el comando que le pasemos a cada elmento de esa lista.
La sintaxis es la siguiente.
find . -name "*.txt" | xargs echo
Con eso listaríamos los ficheros con extensión txt.
find . -name "*.php" | xargs -I fichero cat fichero >> acumulado.php
El parámetro -I hace que podamos darle un nombre a la entrada del comando que queremos ejecutar para realizar operaciones más complejas.
find . -name "*.cpp" | xargs -t -I fichero mv fichero fichero.old
Al realizar operaciones masivas con ficheros es posible que cometamos algún error, para comprobarlo se puede utilizar el parámetro -t que hace que se indiquen en la salida todos y cada uno de los comandos que xargs ejecuta.
2 comentarios:
Sólo quería felicitarte por tu blog. Gran contenido, útil y conciso.
Un saludo
Muchas gracias, me alegra saber que resulta de utilidad.
Un saludo.
Publicar un comentario