tree
и ls
может различать типы файлов, окрашивая имена файлов по-разному.
tree
и ls
часто выводит длинный список файлов (включая каталоги), поэтому я передаю вывод stdout less
.
Но less
не сохраняет цвета. Как мы можем заставить его показывать цвета или какие-то альтернативные способы?
Только что увидел связанный список, но пайпинг к less -R
или less -r
не работает. Моя ОС - Ubuntu 12.04. less
Версия 444: 09 июня 2011 г.
ls
(неtree
), для чего нужно сказать, что некоторые реализации заставляют выводить цвет, когда вывод не идет к терминалу (в дополнение кless -R
необходимости)tree -C | less -R
? Я полагаю, что эта-C
опция эквивалентна дереву--color=always
Less (по крайней мере, она работает для меня в Ubuntu 12.04).tree
с-C
одним и без него всегда выводится в цветах, но почему они отличаются при использовании сless
?less
Удаляет цвета по умолчанию , если вы не дать ему-R
вариант, который говорит , что оставить его, и 2.tree
иls
и другие программы , как правило , очередь окраски, когда они обнаружить их вывод будет другой программы (например ,less
), а не непосредственно к вашему терминалу, если вы не принудительно окрасите их с помощью-C
или--color=always
.Ответы:
Я предполагаю, что вы используете
ls --color=auto
, что говоритls
использовать цвет в «автоматическом» режиме. В «автоматическом» режиме указывается,less
является ли STDOUT терминалом, и если это так, используйте цвет, в противном случае не используйте цвет. Когда трубаls
вless
, STDOUT не является терминал, это связанно с STDIN изless
, которая является нормальной трубой.Решение, использование
ls --color
илиls --color=always
.Однако сейчас это приводит к еще одной потенциальной проблеме. В зависимости от вашего
less
, он может не показывать цвет, а вместо этого показывать коды выхода. Решение заключается в использованииless -R
. Это говоритless
прохождение через escape-коды для цветовых переходов ANSI. Вы не хотите использовать, так-r
как это вызовет проблемы с длинными линиями, которые обертываются вокруг, так как less неправильно рассчитывает длину строки.Итак, полное решение:
Аналогично для
tree
:источник