Вывод на консоль Linux - пауза после каждого экрана

11087
vobject

Когда я перечисляю каталоги с большим количеством файлов с помощью ls -la или tree -L 3, я получаю много экранов вывода. Чтобы читать один экран за другим, я добавляю | больше или | меньше, но проблема в том, что окраска теряется .

Есть ли способ заставить консоль останавливаться после каждого экрана, заполненного информацией, но сохранять цвет?

Благодарю.

5

1 ответ на вопрос

6
David Houde

Когда вы набираете: ls, команда знает, что вывод выводится на ваш tty, и включает цвет. Когда команда обнаруживает вывод, отправляемый в другое место, она отбрасывает коды выхода цвета.

Поэтому, чтобы включить цвет при выводе по конвейеру, используйте либо ls --color, либо ls -G на Mac.

Тогда для меньшего вам нужно будет добавить флаг -R, который поддерживает экранирующие символы ANSI.

ls -la --color | less -R 

Это должно дать результаты, которые вы ищете.

Если у вас есть `--color = auto`, то` ls` будет отображать цвет, если нет трубы. Если есть труба, она не будет отображать цвет. Наличие `--color = всегда` дает цвет труб. Nitrodist 13 лет назад 2
From `ls --help`:" Использование параметра --color без необязательного аргумента WHEN эквивалентно использованию --color = always. " Dennis Williamson 13 лет назад 1
Я должен убедиться, что раскраска включена и что "меньше" интерпретирует экранирующие символы. Спасибо, это результат, который я искал. vobject 13 лет назад 0

Похожие вопросы