Я думаю, что я могу упускать из виду относительно фундаментальный момент в отношении оболочки. Вывод команды ls по умолчанию отделяет вывод с символами новой строки, но оболочка отображает вывод в одной строке.
Кто-нибудь может мне это объяснить? Я всегда предполагал, что выходные данные были просто разделены пробелами, но теперь, когда я вижу выходные данные, разделенные новыми строками, я ожидал, что выходные данные будут отображаться в отдельных строках.
Пример:
cpoweradm@debian:~/lpi103-4$ ls text*
text1 text2 text3
od показывает, что вывод разделен символами новой строки:
cpoweradm@debian:~/lpi103-4$ ls text* | od -c
0000000 t e x t 1 \n t e x t 2 \n t e x t
0000020 3 \n
0000022
Если присутствуют новые строки, то почему вывод не отображается как:
text1
text2
text3
ls
. Это полезно, но явно противоречиво и удивительно. Но обратите внимание, что некоторые команды, которые производят цветной вывод, также удаляют цвета при передаче по конвейеру.