Можливо, щось ще відбувається. 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, який я подав у кольори кольорів:
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 ... ".