ผลลัพธ์ของls(โดยไม่มีข้อโต้แย้ง) ปรากฏขึ้นเพื่อแยกชื่อไฟล์ด้วยการแยกบรรทัด
หลักฐาน:
ls | grep fooทำงานตามที่คาดไว้โดยให้grepแต่ละชื่อไฟล์เป็นบรรทัดแยกของอินพุตls > files.txt; vim files.txt-> ใน Vim แต่ละไฟล์อยู่บนบรรทัดแยกต่างหาก
และในเทอร์มินัลผลลัพธ์ของการlsวางหลายไฟล์ในหนึ่งบรรทัดโดยแยกชื่อไฟล์ด้วยช่องว่างเพื่อสร้างคอลัมน์ที่จัดเรียงอย่างสวยงาม:
$ ls
a.txt b.txt c.txt
ดังนั้นคำถามของฉันคือ ls ทำเช่นนี้ได้อย่างไร
มันใช้อักขระควบคุมพิเศษเพื่อสร้าง 'บรรทัดใหม่' หรือไม่? หรือมันรู้ว่าเมื่อมันถูกไพพ์ไปยังคำสั่งอื่นและจัดรูปแบบเอาท์พุทของมันแตกต่างกันในกรณีนี้?
lsisatty(3)