Saya pikir saya mungkin mengabaikan poin yang relatif mendasar mengenai shell. Keluaran dari ls perintah secara default memisahkan output dengan baris baru, tetapi shell menampilkan output pada satu baris.
Adakah yang bisa menjelaskan ini kepada saya? Saya selalu menganggap bahwa output hanya dipisahkan oleh spasi, tetapi sekarang setelah saya melihat output dipisahkan oleh baris baru, saya berharap output ditampilkan pada baris terpisah.
Contoh:
[email protected]:~/lpi103-4$ ls text*
text1 text2 text3
baik menunjukkan bahwa output dipisahkan oleh baris baru:
[email protected]:~/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
Jika ada baris baru, mengapa output tidak ditampilkan sebagai:
text1
text2
text3
Jawaban yang Diterima:
Saat Anda menyalurkan output, ls
bertindak berbeda.
Fakta ini tersembunyi di dokumentasi info:
Jika keluaran standar adalah terminal, keluaran dalam kolom (diurutkan secara vertikal) dan karakter kontrol dikeluarkan sebagai tanda tanya; jika tidak, output terdaftar satu per baris dan karakter kontrol adalah output apa adanya.
Untuk membuktikannya, coba jalankan
ls
lalu
ls | less
Ini berarti bahwa jika Anda ingin output dijamin menjadi satu file per baris, terlepas dari apakah itu disalurkan atau dialihkan, Anda harus menjalankan
ls -1
(-1
adalah nomor satu)
Atau, Anda dapat memaksa ls | less
untuk menampilkan dalam kolom dengan menjalankan
ls -C
(-C
adalah huruf kapital C)