Codziennie korzystamy z polecenia ls w systemie Linux, często nie zdając sobie z tego sprawy. Warto zwrócić na to uwagę, ponieważ oferuje ono wiele użytecznych opcji, które warto włączyć do swojego zestawu narzędzi w terminalu.
ls – Wyświetlanie plików i katalogów
Polecenie ls jest jednym z pierwszych, z którymi spotykają się użytkownicy Linuksa. Osoby, które regularnie korzystają z terminala, używają go na co dzień, często nie myśląc o jego funkcjonalności. To może być powodem, dla którego wielu użytkowników nie zdaje sobie sprawy z jego pełnych możliwości. Służy ono do wyświetlania listy plików w danym katalogu, a także do uzyskiwania informacji o uprawnieniach plików, gdy używamy opcji długiego formatu. Oprócz tego mało kto zastanawia się nad dodatkowymi opcjami.
Polecenie ls oferuje wiele różnych opcji, co może być przytłaczające. Jak można przeglądać wszystkie te opcje, aby znaleźć te najbardziej użyteczne? A kiedy już je znajdziesz, jak ich zapamiętać?
Warto rozważyć tworzenie aliasów dla przydatnych kombinacji polecenia ls. W rzeczywistości, w wielu dystrybucjach, polecenie ls, które znasz, jest w rzeczywistości aliasem. Aby sprawdzić definicję aliasów, możesz użyć polecenia type Pokaż podstawową definicję aliasów. Spójrzmy na polecenie ls:
Wpisz ls
Parametr –color=auto jest automatycznie dodawany za każdym razem, gdy korzystasz z polecenia ls. Dzięki temu różne typy plików są wyświetlane w różnych kolorach na liście.
Podstawowe użycie ls
Każdy, kto choć trochę spędził czasu w terminalu Linuksa, wie, że domyślnie ls wyświetla pliki i katalogi w bieżącym katalogu.
ls
Aby wyświetlić pliki w jednej kolumnie, użyj opcji -1 (jeden plik na wiersz):
ls -1
Wkrótce omówimy ten dziwnie wyglądający plik na górze listy.
Używanie ls w różnych lokalizacjach
Aby polecenie ls mogło wyświetlić pliki z katalogu innego niż bieżący, wystarczy podać ścieżkę do tego katalogu. Możesz również przekazać więcej niż jeden katalog, a ls wyświetli ich zawartość po kolei. W tym przypadku polecenie ls wyświetli pliki z dwóch katalogów: „Pomoc” oraz „gc_help”.
ls Help gc_help
Po wypisaniu zawartości pierwszego katalogu, ls przechodzi do wyświetlenia zawartości drugiego katalogu, pokazując nazwę każdego z nich w trakcie przetwarzania:
Wykorzystanie wzorców plików
Aby selektywnie wyświetlić zestaw plików, można skorzystać z dopasowania wzorców. Znak zapytania „?” reprezentuje dowolny pojedynczy znak, a gwiazdka „*” symbolizuje dowolny ciąg znaków. Na przykład, aby wyświetlić pliki, których nazwy zaczynają się od „ip_”, użyj następującego polecenia:
ls ip_*
Aby uzyskać listę plików z rozszerzeniem „.c”, użyj tego polecenia:
ls *.c
Możesz także używać ls w połączeniu z grep, aby skorzystać z możliwości dopasowywania wzorców grep. Na przykład, aby znaleźć pliki zawierające w nazwie ciąg „_pin_”, użyj:
ls | grep _pin_
To jest prawie to samo, co użycie ls z dwoma symbolami wieloznacznymi:
ls | grep _pin_
ls *_pin_*
Dlaczego prawie to samo? Zauważ, że grep wyświetla wyniki w formacie jednej linii, podczas gdy drugie polecenie działa nieco inaczej.
Zarządzanie znakami niedrukowalnymi
Możliwe jest natrafienie na pliki z niedrukowalnymi znakami w ich nazwach, co często zdarza się po rozpakowaniu archiwum lub przywróceniu repozytorium git, gdy oryginalny twórca popełnił błąd. Przykładowo, oto plik, który ma taki problem:
Gdy spojrzysz na ten plik w menedżerze plików i spróbujesz zmienić jego nazwę (naciskając „F2”), niedrukowalne znaki będą reprezentowane przez dziwne symbole.
Aby zobaczyć, co dokładnie zawiera nazwa pliku, możesz użyć opcji -b (escape), która sprawi, że ls użyje sekwencji escape z języka C do reprezentacji znaków kontrolnych.
ls -b a*
Okazuje się, że tajemniczy znak to znak nowej linii, reprezentowany w C jako „n”.
Pomijanie plików
Aby pominąć niektóre pliki na liście, użyj opcji –hide. Na przykład, jeśli nie chcesz widzieć plików kopii zapasowej o rozszerzeniu „.bak”, możesz skorzystać z następującego polecenia:
ls
ls --hide=*.bak
Pliki „.bak” nie są widoczne na drugiej liście.
Wyświetlanie szczegółów w długim formacie
Opcja -l (long listing) sprawia, że ls podaje szczegółowe informacje o każdym pliku.
ls -l
Na liście znajduje się wiele informacji, więc przeanalizujmy to szczegółowo.
Pierwsze, co wyświetla ls, to całkowity rozmiar wszystkich plików. Następnie każdy plik lub katalog jest przedstawiany w osobnej linii.
Pierwszy zestaw dziesięciu znaków i myślników pokazuje typ pliku oraz uprawnienia do pliku, właściciela i grupy. Pierwszy znak reprezentuje typ pliku, który może być jednym z następujących:
- -: Zwykły plik.
- b: blokowy plik specjalny.
- c: znakowy plik specjalny.
- d: katalog.
- l: dowiązanie symboliczne.
- n: plik sieciowy.
- p: potok nazwany.
- s: gniazdo.
Następne dziewięć znaków to trzy grupy po trzy znaki, które reprezentują uprawnienia do odczytu, zapisu i wykonywania. Jeśli przyznano uprawnienie, wyświetlane jest r, w lub x, w przeciwnym razie wyświetlany jest łącznik -.
Pierwsza grupa trzech znaków to uprawnienia właściciela, druga dla grupy, a trzecia dla innych użytkowników.
Czasami uprawnienie do wykonywania dla właściciela jest reprezentowane przez s, co oznacza, że plik działa z uprawnieniami właściciela, a nie użytkownika, który go uruchamia. Podobnie, uprawnienie do wykonywania dla grupy może być również oznaczone jako s, co oznacza, że plik działa z uprawnieniami grupy właściciela.
Uprawnienie do wykonywania dla innych może być reprezentowane przez t, co oznacza „lepki bit”. Zwykle stosuje się go do katalogów, aby zapewnić, że tylko właściciel pliku lub katalogu lub użytkownik root mogą zmieniać nazwy lub usuwać pliki.
Typowym zastosowaniem „lepki bit” jest katalog „/tmp”, gdzie wszyscy użytkownicy mają prawo zapisu, ale tylko właściciel pliku może go usunąć lub zmienić. Możesz sprawdzić ten katalog, używając opcji -d (katalog), aby uzyskać szczegóły dotyczące katalogu, a nie plików w nim zawartych.
ls -l -d /tmp
Liczba następująca po uprawnieniach to liczba twardych linków do pliku lub katalogu. Zwykle dla pliku jest to jeden, ale jeśli utworzono inne twarde łącza, liczba ta wzrasta. Katalog zazwyczaj ma co najmniej dwa twarde linki: jeden do siebie, a drugi do katalogu nadrzędnego.
Nazwa właściciela i grupy są wyświetlane obok siebie, a następnie podawany jest rozmiar pliku oraz data ostatniej modyfikacji. Na końcu znajduje się nazwa pliku.
Rozmiary plików w formacie przyjaznym dla użytkownika
Pokazywanie rozmiarów plików w bajtach może być niewygodne. Aby zobaczyć rozmiary plików w bardziej przystępnych jednostkach (kilobajty, megabajty itp.), użyj opcji -h (czytelne dla ludzi):
ls -l -h
Wyświetlanie ukrytych plików
Aby zobaczyć pliki ukryte, użyj opcji -a (all):
ls -l -a
Wpisy „.” i „..” reprezentują odpowiednio katalog bieżący i katalog nadrzędny. Plik o nazwie „.base_settings” staje się widoczny.
Pomijanie wpisów . i ..
Jeśli nie chcesz, aby Twoja lista była zaśmiecona wpisami „.” i „..”, ale chcesz widzieć ukryte pliki, skorzystaj z opcji -A (prawie wszystkie):
ls -l -A
Ukryty plik pozostaje na liście, ale wpisy „.” i „..” są pomijane.
Rekurencyjne wyświetlanie katalogów
Aby ls mogło wyświetlić pliki w wszystkich podkatalogach, użyj opcji -R (rekurencyjna):
ls -l -R
ls przechodzi przez całe drzewo katalogów poniżej bieżącego katalogu i wyświetla pliki w każdym podkatalogu.
Wyświetlanie UID i GID
Aby pokazać identyfikatory użytkownika i grupy zamiast ich nazw, użyj opcji -n (numeryczny identyfikator uid i gid):
ls -n
Sortowanie wyników
Możesz posortować listę według rozszerzenia, rozmiaru pliku lub czasu ostatniej modyfikacji. Te opcje nie muszą być używane z formatem długim, ale zazwyczaj ma to sens. Na przykład, sortując według rozmiaru pliku, warto zobaczyć rozmiary na liście. Podobnie, przy sortowaniu według rozszerzenia format długiej listy nie jest tak istotny.
Aby posortować według rozszerzenia, zastosuj opcję -X (sortowanie według rozszerzenia):
ls -X -1
Katalogi są wyświetlane jako pierwsze (bez rozszerzeń), a następnie pozostałe pliki w kolejności alfabetycznej według rozszerzenia.
Aby posortować według rozmiaru pliku, użyj opcji -S (sortowanie według rozmiaru):
ls -l -h -S
Wyniki będą uporządkowane od największego do najmniejszego.
Aby posortować według czasu modyfikacji, użyj opcji -t (sortowanie według czasu modyfikacji):
ls -l -t
Lista będzie uporządkowana według daty ostatniej modyfikacji. Jeśli modyfikacja miała miejsce w bieżącym roku, wyświetlane będzie miesiąc, dzień i godzina. W przeciwnym razie zobaczysz miesiąc, dzień i rok ostatniej modyfikacji.
Możesz szybko uzyskać dostęp do najnowszych i najstarszych plików w katalogu, używając ls z poleceniami head i tail:
Aby znaleźć najnowszy plik lub katalog, użyj:
ls -t | head -1
Aby uzyskać najstarszy plik lub katalog, użyj:
ls -t | tail -1
Odwracanie porządku sortowania
Aby odwrócić kolejność sortowania, użyj opcji -r (odwróć):
ls -l -h -S -r
Lista jest teraz uporządkowana od najmniejszego do największego pliku.
To nie wszystko
Zapoznaj się z dokumentacją polecenia ls, opcji jest znacznie więcej. Niektóre z nich dotyczą nieco bardziej skomplikowanych przypadków użycia, ale czasami mogą się przydać.
Czy potrzebujesz wyświetlić znaczniki czasowe plików z maksymalną precyzją dostępną w systemie Linux? Użyj opcji –full-time:
ls --full-time
Możesz chcieć 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 zminimalizować ryzyko pomylenia plików z katalogami i linkami? Użyj opcji klasyfikacji, a ls doda odpowiednią notację do każdego wpisu na liście:
- /: Katalog.
- @: Łącze symboliczne.
- |: Nazwana potok.
- =: Gniazdo.
- *: Pliki wykonywalne.
ls -F
Eksploruj dalej! Odkryjesz, że ls to niezwykle bogate narzędzie, a nowe funkcje i opcje tylko czekają na odkrycie.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.