Там может быть что-то еще происходит. ls
не следует использовать цвета, если он не думает, что он связан с чем-то интерактивным. Он не должен раскрашивать вещи, когда вы переходите на другую программу.
Псевдоним, как правило, плохая идея, потому что вы никогда не сможете избавиться от этой опции, и вы привыкнете к личным настройкам, которые вы, возможно, не сможете перенести с собой на другую машину, с которой вам придется работать. Если вам нужно отключить его, чтобы передать его чему-то другому, используйте переключатель в этой трубе. Но в трубе не должно быть цветов.
Для ls
, увидеть , если ваш поддерживает LS_COLORS
переменную окружения. В trapd00r / LS_COLORS показывает, как работает. THT dircolors позволяет вам точно настраивать цвета в зависимости от типа файла. Если вы не установили, LS_COLORS
но включили раскраску, ls
произойдет куча системных вызовов, чтобы выяснить типы файлов и атрибуты, чтобы он мог выяснить, что нужно раскрашивать. Люди, стоящие за Шерлоком, обнаружили, что настройки LS_COLORS
могут избежать всего этого и повысить скорость в 40 раз . Прочитайте их кровавые детали, чтобы увидеть, что они нашли.
Я заставляю все типы файлов использовать цвета по умолчанию:
$ export LS_COLORS='bd=0:ca=0:cd=0:di=0:do=0:ex=0:pi=0:fi=0:ln=0:mh=0:no=0:or=0:ow=0:sg=0:su=0:so=0:st=0:tw=0:'
Вот файл LS_COLORS, который я передал dircolors:
BLK 0
CAPABILITY 0
CHR 0
DIR 0
DOOR 0
EXEC 0
FIFO 0
FILE 0
LINK 0
MULTIHARDLINK 0
NORMAL 0
ORPHAN 0
OTHER_WRITABLE 0
SETGID 0
SETUID 0
SOCK 0
STICKY 0
STICKY_OTHER_WRITABLE 0
Для grep
см , если у вас поддерживает GREP_COLORS
или GREP_OPTIONS
.
ls
и дляgrep
конвейера вам не нужно ничего делать, потому что--color=auto
уже отключается раскраска, когда его вывод представляет собой конвейер, или фактически что-либо, кроме tty; это то, что означает «авто». Точно так же FreeBSDls -G
или CLICOLOR отключены, если вывод не направлен на терминал, если только ... CLICOLOR_FORCE ... '.