In che modo comandi simili ls
sanno qual è il suo stdout?
Sembra che ls
funzioni in modo diverso a seconda di quale sia lo stdout di destinazione. Ad esempio se lo faccio:
ls /home/matt/tmp
il risultato è:
a.txt b.txt c.txt
Comunque se lo faccio
ls /home/matt/tmp | cat
il risultato è (cioè nuova riga per risultato):
a.txt
b.txt
c.txt
Il processo è passato un descrittore di file 1 per stdout giusto? Come determina come formattare il risultato? Il descrittore di file rivela informazioni?