... educación sobre Linux, y espero que también en la tuya.
xargs
acepta dos entradas:
-
En stdin: Una lista de cadenas separadas por espacios en blanco. Un ejemplo son las rutas de archivo producidas por
ls
ofind
, pero cualquier cadena servirá. Las llamaré cadenas de entrada. -
En la línea de comandos: Un comando incompleto al que le faltan algunos argumentos, al que llamaré plantilla de comando.
xargs
fusiona las cadenas de entrada y la plantilla de comandos para producir y ejecutar nuevos comandos completos, a los que llamaré comandos generados. Demostraré este proceso con un ejemplo de juguete. Supón que estás en un directorio con tres archivos:
$ ls -1 apple banana cantaloupe
Pasa el listado de directorios a xargs
para que sirva como cadena de entrada, y proporciona wc -l
para que sirva como plantilla del comando, de esta forma
$ ls -1 | xargs wc -l 3 apple 4 banana 1 cantaloupe 8 total
Como prometí, xargs
aplicó la plantilla de comandos wc -l
a las cadenas de entrada y cuenta las líneas de cada archivo. Para imprimir los mismos tres archivos con cat
, basta con cambiar la plantilla de comandos por "cat":
$ ls -1 | xargs cat
Mis ejemplos de juguete con xargs
tienen dos defectos, uno fatal y otro práctico. El defecto fatal es que xargs
puede hacer algo incorrecto si una cadena de entrada contiene caracteres especiales, como espacios. Hay una solución robusta en la barra lateral "Seguridad con find y xargs".
El inconveniente práctico es que aquí no necesitas xargs
; puedes realizar ...
Get Linux eficiente en la línea de comandos now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.