Jak używać polecenia ls do wyświetlania listy plików i katalogów w systemie Linux

Używamy polecenia ls Linuksa każdego dnia, nie myśląc o tym. Szkoda. Zwróć na to uwagę, a znajdziesz wiele przydatnych opcji – w tym kilka, które powinieneś dodać do swojego arsenału wiersza poleceń.

ls Wyświetla pliki i katalogi

Polecenie ls jest prawdopodobnie pierwszym poleceniem, które napotyka większość użytkowników Linuksa. Ci z nas, którzy kręcą się wokół wiersza poleceń, używają go codziennie, nawet o tym nie myśląc. To może wyjaśniać, dlaczego w tym poleceniu jest coś więcej niż większość użytkowników zdaje sobie sprawę. Podajemy z nim listę plików, aby zobaczyć, co jest w katalogu. Podajemy pliki w długim formacie, gdy chcemy spojrzeć na uprawnienia do pliku. Poza tym niewiele uwagi.

Polecenie ls jest jednym z tych poleceń z wieloma opcjami. Być może jest to część problemu. Jest tak wiele opcji, jak je przeglądać, aby znaleźć przydatne? A skoro je znalazłeś, jak je pamiętasz?

Przydatne permutacje polecenia ls wraz z ich ciągami opcji i parametrów są idealnymi kandydatami na aliasy. W rzeczywistości w większości dystrybucji to, co myślisz o poleceniu „nagie” ls, jest w rzeczywistości aliasem. Między innymi można użyć polecenia type Pokaż podstawową definicję aliasów. Spójrzmy na definicję ls:

wpisz ls

wpisz ls w oknie terminala

Parametry –color = auto są dołączane automatycznie za każdym razem, gdy używasz polecenia ls. To właśnie zapewnia różne kolory dla różnych typów plików na listach.

Proste aukcje ls

Każdy, kto spędził trochę czasu na terminalu Linux, wie, że domyślnie ls wyświetla listę plików i katalogów w bieżącym katalogu.

ls

Znajduje się w oknie terminala

Jeśli chcesz, aby Twoja aukcja była tworzona w jednej kolumnie, użyj opcji -1 (jeden plik w wierszu):

ls -1

ls -1 w oknie terminala

Za chwilę omówimy tę dziwnie wyglądającą nazwę pliku u góry listy.

Używanie ls w różnych katalogach

Aby ls wyświetliło pliki w katalogu innym niż bieżący, przekaż ścieżkę do katalogu do ls w wierszu poleceń. Możesz także przekazać więcej niż jeden katalog do ls i wyświetlić je jeden po drugim. Tutaj prosimy ls o wyświetlenie plików w dwóch katalogach, jednym o nazwie „Pomoc”, a drugim o nazwie „gc_help”.

ls Help gc_help

ls Pomóż gc_help w oknie terminala

Gdy ls wypisze zawartość pierwszego katalogu, wypisze zawartość drugiego. Wyświetla nazwę każdego katalogu podczas ich przetwarzania:

Nazwa katalogu wyświetlanego przez ls przed wyświetleniem zawartości.

Używanie wzorców plików

Aby wybiórczo wyświetlić zestaw plików, użyj dopasowania wzorców. Znak zapytania „?” będzie reprezentować dowolny pojedynczy znak, a gwiazdka „*” będzie reprezentować dowolny ciąg znaków. Aby wyświetlić listę plików lub katalogów, które mają nazwy zaczynające się od „ip_”, użyj tego formatu:

ls ip_*

ls ip_ * w oknie terminala

Aby wyświetlić listę plików z rozszerzeniem „.c”, użyj tego formatu:

ls *.c

ls * .c w oknie terminala

Możesz także użyć ls z grep i użyć grepa możliwości dopasowania wzorców. Poszukajmy plików, które mają w nazwie ciąg „_pin_”:

ls | grep _pin_

ls |  grep _pin_ w oknie terminala

To prawie to samo, co używanie samego ls z dwoma symbolami wieloznacznymi:

ls | grep _pin_
ls *_pin_*

ls |  grep _pin_ w oknie terminala

Dlaczego prawie to samo? Zwróć uwagę na różne układy. grep wymusza na wyjściu jedną nazwę pliku w formacie linii.

Znaki niedrukowalne

Możliwe jest znalezienie nazwy pliku z rozszerzeniem niedrukowalne lub znak kontrolny w nazwie pliku. Zwykle może się to zdarzyć, gdy rozwiniesz archiwum pobrane z sieci lub odzyskasz repozytorium git, a oryginalny autor popełnił błąd podczas tworzenia pliku, ale go nie zauważył.

Nasz dziwny plik to jeden z tych:

Nazwa pliku ze znakiem sterującym w oknie terminala

Jeśli spojrzymy na to w przeglądarce plików i naciśniemy „F2”, aby zmienić jego nazwę, niedrukowalne znaki są reprezentowane przez dziwny symbol.

Nazwa pliku ze znakiem sterującym w oknie dialogowym zmiany nazwy

Możesz użyć opcji -b (escape), aby zobaczyć, co faktycznie zawiera nazwa pliku. Ta opcja powoduje, że ls używa sekwencji ucieczki pliku Język programowania C. do reprezentowania znaków sterujących.

ls -b a*

ls -ba * w oknie terminala

Tajemnicza postać okazuje się być znakiem nowej linii, przedstawionym w C jako „n”.

Ignorowanie plików

Aby niektóre pliki zostały pominięte na liście, użyj opcji –hide. Załóżmy, że nie chcesz widzieć kopii zapasowych plików „.bak” na liście. Możesz użyć tego polecenia:

ls
ls --hide=*.bak

ls --hide = *. bak w oknie terminala

Pliki „.bak” nie znajdują się na drugiej liście.

Lista w długim formacie

Opcja -l (długa lista) powoduje, że ls podaje szczegółowe informacje o każdym pliku.

ls -l

ls -l w oknie terminala

Jest tu dużo informacji, więc przejdźmy przez to.

Pierwszą rzeczą, którą wyświetla ls, jest całkowity rozmiar wszystkich plików na liście. Następnie każdy plik lub katalog jest wyświetlany w osobnej linii.

Pierwszy zestaw dziesięciu liter i myślników to typ pliku oraz właściciel, grupa i inne uprawnienia do pliku.

Pierwszy znak reprezentuje typ pliku. Będzie to jeden z:

-: Zwykły plik.
b: blokowy plik specjalny.
c: znakowy plik specjalny.
d: katalog.
l: dowiązanie symboliczne.
n: plik sieciowy.
p: nazwana potok.
s: gniazdo.

Kolejnych dziewięć znaków to trzy grupy po trzy znaki wyświetlane w sposób ciągły. Każda grupa trzech reprezentuje uprawnienia do odczytu, zapisu i wykonywania w tej kolejności. Jeśli zezwolenie zostanie udzielone, pojawi się r, w lub x. Jeśli zezwolenie nie zostanie udzielone, wyświetlany jest łącznik -.

Pierwszy zestaw trzech znaków to uprawnienia właściciela pliku. Drugi zestaw trzech uprawnień jest przeznaczony dla członków grupy, a ostatni zestaw trzech uprawnień jest dla innych.

Czasami zezwolenie na wykonanie dla właściciela jest reprezentowane przez s. To jest setuid kawałek. Jeśli jest obecny, oznacza to, że plik jest wykonywany z uprawnieniami właściciela pliku, a nie użytkownika wykonującego plik.

Uprawnieniem do wykonywania dla grupy może być również s. To jest setgid kawałek. Kiedy jest to zastosowane do pliku, oznacza to, że plik zostanie wykonany z uprawnieniami grupy właściciela. W przypadku użycia z katalogiem wszelkie pliki utworzone w nim przejmą uprawnienia grupy z katalogu, w którym są tworzone, a nie od użytkownika, który tworzy plik.

Pozwolenie na wykonanie dla innych może być czasami reprezentowane przez t. To jest lepki kawałek. Zwykle jest stosowany do katalogów. Jeśli jest ustawiona, niezależnie od uprawnień do zapisu i wykonywania plików w katalogu, tylko właściciel pliku, właściciel katalogu lub użytkownik root może zmieniać nazwy lub usuwać pliki w katalogu.

Typowym zastosowaniem „sticky bit” są foldery takie jak „/ tmp”. Prawo do zapisu mają wszyscy użytkownicy komputera. Lepki bit w katalogu zapewnia, że ​​użytkownicy – i procesy uruchomione przez użytkowników – mogą zmieniać nazwy lub usuwać tylko własne pliki tymczasowe.

Widzimy lepki bit w katalogu „/ tmp”. Zwróć uwagę na użycie opcji -d (katalog). Powoduje to, że ls zgłasza szczegóły katalogu. Bez tej opcji ls będzie raportować pliki w katalogu.

ls -l -d /tmp

ls -l -d / tmp w oknie terminala

Liczba następująca po uprawnieniach to liczba twardych linków do pliku lub katalogu. W przypadku pliku jest to zwykle jeden, ale jeśli zostaną utworzone inne twarde łącza, liczba ta wzrośnie. Katalog zazwyczaj ma co najmniej dwa dowiązania twarde. Jeden jest odsyłaczem do samego siebie, a drugi to jego wpis w katalogu nadrzędnym.

Nazwa właściciela i grupy są wyświetlane obok. Po nich następuje rozmiar pliku i data ostatniej modyfikacji pliku. Na koniec podana jest nazwa pliku.

Rozmiary plików czytelne dla ludzi

Posiadanie rozmiarów plików w bajtach nie zawsze jest wygodne. Aby zobaczyć rozmiary plików w najbardziej odpowiednich jednostkach (kilobajty, megabajty itp.), Użyj opcji -h (czytelne dla człowieka):

ls -l -h

ls -l -h w oknie terminala

Pokazywanie ukrytych plików

Aby zobaczyć ukryte pliki, użyj opcji -a (all):

ls -l -a

ls -l -a w oknie terminala

Dwa wpisy „.” a „..” reprezentują odpowiednio katalog bieżący i katalog nadrzędny. Plik o nazwie „.base_settings” jest teraz widoczny po raz pierwszy.

Pomijanie. i .. z ofert

Jeśli nie chcesz, aby Twoja aukcja była zaśmiecona znakiem „.” i „..”, ale chcesz zobaczyć ukryte pliki, użyj opcji -A (prawie wszystkie):

ls -l -A

ls -l -A w oknie terminala

Ukryty plik jest nadal na liście, ale „.” i wpisy „..” są pomijane.

Lista katalogów rekurencyjnie

Aby ls wyświetliło pliki we wszystkich podkatalogach, użyj opcji -R (rekurencyjna)

ls -l -R

ls -l -R w oknie terminala

ls przechodzi przez całe drzewo katalogów poniżej katalogu startowego i wyświetla pliki w każdym podkatalogu.

wyjście z ls rekurencyjnie wymieniając katalogi

Wyświetlanie UID i GID

Aby wyświetlić identyfikator użytkownika i identyfikator grupy zamiast nazwy użytkownika i nazwy grupy, użyj opcji -n (numeryczny identyfikator uid i gid).

ls -n

ls -n w oknie terminala

Sortowanie ofert

Możesz sortować listę według rozszerzenia, rozmiaru pliku lub czasu modyfikacji. Te opcje nie muszą być używane z formatem długich list, ale zwykle ma to sens. Jeśli sortujesz według rozmiaru pliku, warto zobaczyć rozmiary plików na liście. Podczas sortowania według typu rozszerzenia format długich list nie jest tak ważny.

Aby posortować według rozszerzenia, użyj opcji -X (sortuj według rozszerzenia).

ls -X -1

ls -X -1 w oknie terminala

Katalogi są wymienione jako pierwsze (w ogóle bez rozszerzeń), a następnie pozostałe w kolejności alfabetycznej, zgodnie z rozszerzeniami.

Aby posortować według rozmiaru pliku, użyj opcji -S (sortuj według rozmiaru pliku).

ls -l -h -S

ls -l -h -S w oknie terminala

Porządek sortowania od największego do najmniejszego.

Aby posortować listę według czasu modyfikacji, użyj opcji -t (sortuj według czasu modyfikacji).

ls -l -t

ls -l -t w oknie terminala

Lista jest posortowana według czasu modyfikacji.

Jeśli czas modyfikacji pliku mieści się w bieżącym roku, wyświetlane informacje to miesiąc, dzień i godzina. Jeśli data modyfikacji nie przypadała w bieżącym roku, wyświetlane informacje to miesiąc, dzień i rok.

Szybkim sposobem na pobranie najnowszych i najstarszych plików w katalogu jest użycie ls z poleceniami head i tail.

Aby uzyskać najnowszy plik lub katalog, użyj tego polecenia:

ls -t | head -1

Aby pobrać najstarszy plik lub katalog, użyj tego polecenia:

ls -t | tail -1

ls -t |  head -1 w oknie terminala

Aby odwrócić porządek sortowania

Aby odwrócić dowolny porządek sortowania, użyj opcji -r (odwróć).

ls -l -h -S -r

ls -l -h -S -r w oknie terminala

Aukcja jest teraz uporządkowana od najmniejszego do największego pliku.

A to nie wszystko

Sprawdź stronę podręcznika dla ls, opcji jest o wiele więcej. Niektóre z nich spełniają nieco niejasne przypadki użycia, ale od czasu do czasu będziesz zadowolony, że o nich wiesz.

Czy potrzebujesz wyświetlać sygnatury czasowe plików z maksymalną precyzją, jaką może zapewnić Linux? Skorzystaj z opcji na pełny etat:

ls --full-time

Może chcesz zobaczyć numer i-węzła plików? Użyj opcji i-węzła:

ls -i

Czy pracujesz na monochromatycznym wyświetlaczu i chcesz wyeliminować ryzyko pomylenia plików z katalogami i linkami? Użyj opcji klasyfikowania, a ls doda jedną z nich do każdego wpisu na liście:

/: Katalog.
@: Łącze symboliczne.
|: Nazwana potok.
=: Gniazdo.
*: Pliki wykonywalne

ls -F

Poszukaj trochę. Przekonasz się, że ls to bogata żyła i będziesz nadal odkrywać klejnoty.