Как такие команды, как ls
узнать, что его стандартный вывод?
Кажется ls
, работает по-разному в зависимости от того, что является целевым stdout. Например, если я делаю:
ls /home/matt/tmp
результат:
a.txt b.txt c.txt
Однако если я сделаю
ls /home/matt/tmp | cat
результат (то есть новая строка на результат):
a.txt
b.txt
c.txt
Процесс передается файловый дескриптор 1 для stdout правильно? Как это определяет, как отформатировать результат? Дескриптор файла раскрывает информацию?