LS_COLORS
variabel lingkungan memungkinkan Anda memutuskan warna untuk jenis file yang berbeda untuk ls
perintah GNU coreutil , seperti direktori, file biasa, tautan dll. tidak ada opsi untuk menentukan warna tampilan untuk mereka.
Apakah ada cara (lain) yang dapat Anda lakukan untuk membuat ls
listing menampilkan file tersembunyi dalam warna yang berbeda?
LS_COLORS
. Saya tidak tahu cara membuatnya berfungsi untuk dotfiles tetapi Anda mungkin ingin memeriksanya.*.hide
misalnya. Jawaban ini membahas masalah yang sama untuk direktori, meskipun jawaban untuk ini dan masalah direktori mungkin tidak sama.Jawaban:
Jika Anda hanya mengurutkan berdasarkan nama, ini mungkin membantu:
Namun, ia membagi perintah ls menjadi dua bagian, satu untuk file dan folder tersembunyi, satu untuk sisanya.
sumber
Ya, gunakan
cf
. Saya baru saja merilis versi yang terdokumentasi dengan baik, ini secara khusus mewarnai keluaran per ekstensi file dan / atau atribut khusus tertentu (dapat dieksekusi, tautan, tersembunyi, dan direktori). Cobalah !!! Sulit untuk melepaskan dari menggunakan ini setelah Anda terbiasa.https://github.com/AdamDanischewski/cf
sumber
Jika Anda hanya ingin menyorot file tersembunyi (dan folder) dan Anda tidak peduli dengan pewarnaan semua file lainnya, maka pendekatan yang jelas adalah menjalankan
ls -la | grep -E "^| \.[^/|'.].*"
Jika Anda ingin mempertahankan warna lain, maka segala sesuatunya mulai menjadi rumit, karena
$LS_COLORS
tidak mendukung pewarnaan file tersembunyi seperti yang terlihat.Saya datang dengan ide untuk secara dinamis menambahkan file tersembunyi direktori saat ini ke
$LS_COLORS
variabel lingkungan sebagai ekstensi semu, kemudian jalankanls -la
dan setelah itu jalankandircolors
untuk mengatur ulang skema warna asli. Jelas akan ada konflik jika file tersembunyi memiliki nama yang sama dengan ekstensi yang dikenal. Metode ini juga tidak berfungsi dengan folder tersembunyi.Peringatan: Solusi ini adalah retas (yang tidak sepenuhnya diuji). Gunakan dengan risiko Anda sendiri.
for h in $(ls -A | grep "^\."); do LS_COLORS="$LS_COLORS*$h=04;05:"; done; ls -la; eval $(dircolors)
sumber