Estoy bastante confundido sobre esto. Necesita algunas aclaracionesComprender el comando UNIX xargs
Ejemplo 1:
pgrep string | xargs ps
Ejemplo 2:
find . | xargs grep whatever
Desde el Ejemplo 1, deduzco que es de esta manera:
búsqueda de una "cadena" que es forma parte del nombre del proceso en ejecución y devuelve los ID de proceso de todas las coincidencias a 'xargs ps' -> que simplemente se agrega ps para los partidos (que son propios del proceso-ids) para obtener el mismo resultado que:
ps <processid>
Puede alguien explicar lo que realmente hace xargs en este caso?
del Ejemplo 2, deduzco que es de esta manera:
Es para buscar un poco de "cadena" de forma recursiva del directorio de trabajo actual. Aquí, ¿cómo funciona exactamente 'xargs'?
Yo era de la opinión de que 'xargs' agrega repetidamente datos de entrada estándar al 'argumento' dado a xargs (que generalmente es un comando de UNIX por sí mismo).
De xargs() página hombre:
xargs lee artículos de la entrada estándar, delimitadas por espacios en blanco (que se puede protegido con comillas dobles o individuales o una barra invertida) o saltos de línea, y ejecuta el comando (por defecto es/bin/echo) una o más veces con cualquier argumento inicial seguido de elementos leídos de la entrada estándar. Las líneas en blanco en la entrada estándar se ignoran.
xargs actúa como el "subtitution comando" (al menos con Bash). Convierte resultados de líneas múltiples (verticales) en una lista de una línea de argumentos de tokens (horizontal). (Tenga en cuenta que puede filtrar los resultados un poco (usando sed para ex) antes de pasarlos a xargs). Además, xargs maneja el error «_muchos argumentos_ que puede ocurrir antes de Linux kernel 2.6.23 (Ver [wikipedia] (https://en.wikipedia.org/wiki/Xargs)). Aquí está [otro hilo útil] (http://unix.stackexchange.com/questions/24954/when-is-xargs-needed) – Stphane