Mogło się dziać coś innego. ls
nie powinien używać kolorów, chyba że wydaje się, że jest to połączone z czymś interaktywnym. Nie powinno to koloryzować rzeczy podczas łączenia z innym programem.
Alias jest ogólnie złym pomysłem, ponieważ nigdy nie możesz pozbyć się tej opcji i przyzwyczajasz się do osobistych ustawień, których możesz nie być w stanie przenieść ze sobą na inną maszynę, nad którą musisz pracować. Jeśli chcesz go wyłączyć, aby połączyć go z czymś innym, użyj przełącznika w tej rurze. Ale kolory nie powinny być w rurze.
Sprawdź ls
, czy Twoja obsługuje LS_COLORS
zmienną środowiskową. Trapd00r / LS_COLORS pokazuje prace jak THT. dircolors pozwala na drobną regulację kolorów w zależności od rodzaju pliku. Jeśli nie ustawisz, LS_COLORS
ale masz włączone kolorowanie, ls
wykona kilka wywołań systemowych, aby dowiedzieć się, jakie są typy plików i atrybuty, aby mógł dowiedzieć się, co należy pokolorować. Ludzie stojący za Sherlockiem odkryli, że ustawienie LS_COLORS
może tego uniknąć i daje 40-krotną poprawę prędkości . Przeczytaj ich krwawe szczegóły, aby zobaczyć, co znaleźli.
Sprawiam, że wszystkie typy plików używają domyślnych kolorów:
$ 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:'
Oto plik LS_COLORS, który podałem dircolorsom:
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
Sprawdź grep
, czy twoje obsługuje GREP_COLORS
lub GREP_OPTIONS
.
ls
igrep
podczas potokowania nie musisz nic robić, ponieważ--color=auto
już wyłącza kolorowanie, gdy jego wyjściem jest potok lub właściwie tty; to właśnie oznacza „auto”. Podobnie FreeBSDls -G
lub „CLICOLOR” jest „wyłączone”, jeśli dane wyjściowe nie są kierowane do terminala, chyba że ... CLICOLOR_FORCE ... ”.