LS_COLORS
Переменная окружения позволяет вам выбирать цвета для разных типов файлов для команды GNU coreutil ls
, таких как каталоги, обычные файлы, ссылки и т. д. Я предполагаю, что точечные файлы считаются вариацией типов файлов Linux, а не отдельным типом, поэтому существует нет возможности указать цвет дисплея для них.
Есть ли какой-либо (другой) способ сделать ls
списки скрытыми файлами другого цвета?
LS_COLORS
. Я не мог понять, как заставить его работать на точечные файлы, но вы можете проверить это.*.hide
например. Этот ответ решает аналогичную проблему для каталогов, хотя ответы на этот вопрос и проблема с каталогами, вероятно, не совпадают.Ответы:
Если вы сортируете только по имени, это может помочь:
Однако он разделяет команду ls на две части, одну для скрытых файлов и папок, одну для остальных.
источник
Да, используйте
cf
. Я только что выпустил хорошо документированную версию, она специально окрашивает вывод ls для каждого расширения файла и / или определенных специальных атрибутов (исполняемый файл, ссылки, скрытый каталог и каталоги). Дать ему шанс!!! Трудно отказаться от этого, когда привыкнешь.https://github.com/AdamDanischewski/cf
источник
Если вы просто хотите выделить скрытые файлы (и папки) и вам не нужны цвета всех остальных файлов, тогда очевидный подход - запустить
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)
источник