Output dari ls(tanpa argumen) muncul untuk memisahkan nama file dengan linebreak.
Bukti:
ls | grep fooberfungsi seperti yang diharapkan, dengangrepmemperlakukan setiap nama file sebagai jalur input yang terpisah.ls > files.txt; vim files.txt-> di Vim, setiap file berada di baris yang terpisah
Namun di terminal output lsmenempatkan banyak file pada satu baris, memisahkan nama file dengan spasi untuk membuat kolom yang sejajar dengan baik:
$ ls
a.txt b.txt c.txt
Jadi pertanyaan saya adalah, bagaimana saya melakukan ini?
Apakah itu menggunakan beberapa kontrol khusus char untuk 'memalsukan' baris baru? Atau apakah ia tahu kapan outputnya sedang disalurkan ke perintah lain, dan format outputnya berbeda dalam kasus ini?
lsdigunakan untuk menentukan apakah output terminal atau tidakisatty(3).