Uczę wprowadzenie do UNIX / Linux w lokalnej szkole, a jeden z moich studentów zadał następujące pytanie:
Dlaczego niektóre pliki w moim katalogu są białe, a inne są szare? Czy białe są tymi, które dzisiaj stworzyłem, a szare są plikami istniejącymi?
Przyglądając się temu, po raz pierwszy pomyślałem, że odpowiedź będzie w LS_COLORS
zmiennej, ale dalsze dochodzenie ujawniło, że listy kolorów były różne, gdy używałeś -l
przełącznika w porównaniu z -al
przełącznikiem z ls
poleceniem. Zobacz następujące zrzuty ekranu:
Użycie ls -l
pliku o nazwie „3” pokazuje się jako biały, ale przy użyciu -al
przełącznika ten sam plik pokazuje szary.
Czy to błąd w ls, czy ktoś wie, dlaczego tak się dzieje?
linux
command-line
ls
colors
Bill R.
źródło
źródło
ls
poleceniem.LS_COLORS='rs=0;1' ls -l
, ale wygląda to zupełnie inaczej.ls
może zmienić kolor swoich wyników.ls
mogą zapewniać kolor. ;-)Odpowiedzi:
Wygląda na to, że twoja zachęta-ciąg (
$PS1
) ustawia pogrubiony atrybut znaków, aby kolory były ładniejsze, a nie go rozbraja . Wyjście zels
nie wie o tym, a nie wyłączony pogrubione. Więc po wydrukowaniu pierwszego koloruls
wszystko wygląda na przyciemnione.źródło
Całe wyjście ls zostanie wydrukowane w ostatnim aktywnym kolorze. Jeśli
ls
wywoływany jest bez koloru:wydrukuje listę plików na czerwono .
Lub, jeśli nie ma potrzeby zmiany koloru dla ls, ostatni kolor pozostanie:
Mimo to wszystko na czerwono.
Ale gdy tylko
ls
trzeba ustawić kolor (a następnie zresetować kolory do domyślnych używanych przez konsolę), od tej pory kolor będzie domyślny w konsoli.Z pierwszymi trzema liniami (aż do niebieskiej kropki) wydrukowanymi na czerwono.
źródło