Por ejemplo:
find /usr/share/figlet/ -type f -name "*.flf" | xargs ls -l
-rwxr-xr-x 1 root root 3369 Mar 31 17:54 /usr/share/figlet/Tombstone.flf -rwxr-xr-x 1 root root 7641 Mar 31 17:54 /usr/share/figlet/Train.flf -rwxr-xr-x 1 root root 8336 Mar 31 17:54 /usr/share/figlet/Trek.flf -rwxr-xr-x 1 root root 9363 Mar 31 17:54 /usr/share/figlet/Tubular.flf -rwxr-xr-x 1 root root 15484 Mar 31 17:54 /usr/share/figlet/Univers.flf -rwxr-xr-x 1 root root 6644 Mar 31 17:54 /usr/share/figlet/usaflag.flf
find /usr/share/figlet/ -type f -name "*.flf" | xargs figlet -f
El primer comando genera una salida pero el segundo no. Cuál es la razón detrás de esto?
Respuesta1
Voy a intentar una respuesta:
find /usr/share/figlet/ -type f -name "*.flf" | xargs -n 1 figlet -f
Esto se ejecutaráunocomando figlet conunonombre de archivo y otro comando figlet con otro nombre de archivo, y así sucesivamente.
Véase por ejemplo la diferencia entre
find /usr/share/figlet/ -type f -name "*.flf" | xargs -t ls -l
y
find /usr/share/figlet/ -type f -name "*.flf" | xargs -t -n 1 ls -l
(Por cierto, siempre incluyo '-r' en xargs, lo que evitará que xargs se ejecute si no hay entrada. De lo contrario, obtendrás una línea vacía confusa).