Як розфарбувати приховані файли у списках файлів `ls`?


10

LS_COLORSекологічна змінна дозволяє вам визначати кольори для різних типів файлів для команди GNU coreutil ls, таких як каталоги, звичайні файли, посилання тощо. Я вважаю, що файли з точки зору вважаються варіацією типів файлів Linux, а не самим типом. немає можливості вказувати колір відображення для них.

Чи існує якийсь (інший) спосіб, щоб ви могли зробити lsсписки, показуючи приховані файли іншого кольору?


Ця відповідь має більше, ніж ви коли-небудь хотіли знати LS_COLORS. Я не міг зрозуміти, як змусити його працювати для dotfiles, але ви, можливо, захочете це перевірити.
terdon

1
@terdon - це не працює для точкових файлів. Це може бути для деяких, але дуже мало. Існує обмеження на довжину розширення, і більшість цілих імен буде перевищувати його. Він буде працювати для файлів, названих, *.hideнаприклад. Ця відповідь вирішує подібну проблему для каталогів, хоча відповіді на цю проблему та проблему з каталогом, ймовірно, не є однаковими.
mikeserv

Відповіді:


1

Якщо ви сортуєте лише по імені, це може допомогти:

alias ll='LS_COLORS=$LS_COLORS:"di=0;34:" ; S_COLORS=$LS_COLORS:"fi=0;37:" ; export LS_COLORS; ls -dHhl --color=auto .*; LS_COLORS=$LS_COLORS:"di=1;94:" ; LS_COLORS=$LS_COLORS:"fi=1;37:" ; export LS_COLORS$

Однак вона розбиває команду ls на дві частини, одну для прихованих файлів і папок, одну для решти.


0

Так, використовувати cf. Я щойно випустив добре задокументовану версію, вона конкретно забарвлює вихідний результат на розширення файлу та / або певні спеціальні атрибути (виконуваний файл, посилання, приховані та каталоги). Дай постріл !!! Важко відмовитися від використання цього, як тільки ти звикнеш до нього.

https://github.com/AdamDanischewski/cf


-1

Якщо ви просто хочете виділити приховані файли (і папки) і вам не байдуче забарвлення всіх інших файлів, тоді очевидним підходом є запуск ls -la | grep -E "^| \.[^/|'.].*"

Якщо ви хочете підтримувати інші кольори, то все починає хитріше, оскільки $LS_COLORSвін не підтримує кольорові приховані файли, як здається.

Мені прийшла ідея динамічно додавати приховані файли поточного каталогу до $LS_COLORSзмінної середовища у вигляді розширення псевдо, потім виконати ls -laі після цього запустити dircolorsдля скидання вихідної кольорової схеми. Очевидно, виникне конфлікт, якщо прихований файл має те саме ім’я, що і відоме розширення. Також цей метод не працює з прихованими папками.

Попередження: Це рішення є (не дуже ретельно перевіреним) злом. Використовуйте його на свій страх і ризик.

for h in $(ls -A | grep "^\."); do LS_COLORS="$LS_COLORS*$h=04;05:"; done; ls -la; eval $(dircolors)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.