Saya mengajar kursus Pengantar UNIX / Linux di sebuah perguruan tinggi setempat dan salah satu siswa saya mengajukan pertanyaan berikut:
Mengapa beberapa file dalam direktori saya berwarna putih dan yang lainnya berwarna abu-abu? Apakah yang putih yang saya buat hari ini dan abu-abu adalah file yang ada?
Ketika saya melihat ke dalam ini saya pertama kali berpikir jawabannya akan ada dalam LS_COLORS
variabel, tetapi penyelidikan lebih lanjut mengungkapkan bahwa daftar warna berbeda ketika menggunakan -l
sakelar versus -al
sakelar dengan ls
perintah. Lihat tangkapan layar berikut:
Menggunakan ls -l
file bernama '3' menunjukkan putih tetapi menggunakan -al
switch file yang sama menunjukkan abu-abu.
Apakah ini bug di ls atau ada yang tahu mengapa ini terjadi?
sumber
ls
perintah itu sendiri.LS_COLORS='rs=0;1' ls -l
, tetapi tampilannya sangat berbeda.ls
dapat mengubah warna outputnya.ls
dapat memberikan warna. ;-)Jawaban:
Sepertinya Anda cepat-string (
$PS1
) adalah pengaturan atribut tebal pada karakter untuk membuat warna lebih bagus, dan tidak unsetting itu. Output darils
tidak tahu tentang ini, dan tidak disetel dengan huruf tebal. Jadi setelah keluaran warna pertamals
, semuanya tampak redup.sumber
Seluruh output ls akan dicetak dalam warna aktif terakhir . Jika
ls
disebut tanpa warna:akan mencetak daftar file dengan warna merah .
Atau, jika tidak ada perubahan warna yang diperlukan untuk ls, warna terakhir akan tetap:
Tetap saja, semuanya berwarna merah.
Tetapi, segera setelah
ls
perlu mengatur warna (dan kemudian mengatur ulang warna ke default yang digunakan oleh konsol), warna yang digunakan sejak saat itu akan menjadi default konsol.Dengan tiga baris pertama (hingga titik biru) dicetak dengan warna merah.
sumber