Digamos que existe un programa, que toma dos argumentos; archivo de entrada y archivo de salida.
¿Qué pasa si no desea guardar el archivo de salida en el disco, sino más bien lo pase directamente a la stdin
de otro programa. ¿Hay una manera de lograr esto?
Muchos comandos que encuentro en Linux ofrecen una opción para pasar '-' como argumento del archivo de salida, que hace lo que he especificado anteriormente. ¿Es esto porque stdin
no es posible pasar el argumento de un programa como argumento? Si es así, ¿cómo lo hacemos?
Un ejemplo de cómo iba a imagen utilizando esto es:
pdftotext "C BY BRIAN W KERNIGHAN & DENNIS M RITCHIE.pdf" stdin(echo)
La cáscara que estoy usando es bash.
cat < README.txt | cp /dev/fd/0
. Decíacp: missing destination file operand after ‘/dev/fd/0’ Try 'cp --help' for more information.
program input-file /dev/stdout | another-program
? También tenga en cuenta que echo
no lee nada de stdin.
cp
archivar en ninguna parte. echo 1 2 3| cp /dev/fd/0 /dev/tty
imprimirá 1 2 3
. Y, por cierto, /dev/fd/[num]
es más probable que funcione que /dev/std(in|out|err)
en la mayoría de los casos. Consulte Portabilidad de enlaces de descriptor de archivo sobre qué puede esperar para trabajar en dónde.
cat <file | cmd /dev/fd/0
Funciona en la mayoría de las unidades.