ls -l --color=auto | tee output.log
Без трубы / тройника она цветная. Как я могу сделать так, чтобы он оставался цветным при использовании tee
(можно раскрашивать только на экране, меня не волнуют цвета в журналах).
Просто вставьте unbuffer
перед любой командой, чтобы заставить его думать, что он записывает в интерактивный вывод, даже если он фактически транслируется в другой исполняемый файл. Это сохранит цвет в случае ls
.
Например
unbuffer ls -l --color=auto | tee output.log
Если он еще не установлен, в Ubuntu и других дистрибутивах Debian-ish Linux вы можете установить unbuffer
, выполнив.
sudo apt-get install expect-dev
Используйте опцию ls --color=always
--color=auto
не будет выводить цвета на конвейер - по понятным причинам.
На главной странице написано следующее:
При --color = auto цветовые коды выводятся, только если стандартный вывод подключен к терминалу (tty).