Artur Pyszczuk's blog...

"Graliśmy razem z jej rodzicami w scrable i stanąłem przed możliwością napisania słowa "anal", które dałoby mi wygraną"
bash.org.pl
/home/linux/commands/ls/

ls - Wyświetlenie zawartości katalogu

W konsoli, aby wyświetlić zawartość katalogu trzeba użyć jednego z kilku dostępnych poleceń, nie mniej jednak polecenie ls jest chyba najbardziej popularnym. W tym miejscu opiszę w jaki sposób korzysta się z podstawowego polecenia, oraz polecenia z różnymi parametrami.

Ogólna składnia polecenia prezentuje się następująco:

$ ls [opcje] [plik]

Przyjęło się tak, że nawiasy kwadratowe oznaczają coś, co nie jest wymagane. A więc polecenie ls nie musi przyjmować żadnych opcji, ani argumentów w postaci plików/katalogów. A więc w najprostszej postaci, do wyświetlenia zawartości bieżacego katalogu, użyjemy polecenia ls bez żadnych parametrów. Jak pokazano na rys. 1.

ls - Wyświetlenie zawartości katalogu
Rys. 1. Polecenie ls


W gruncie rzeczy patrząc na rysunek 1, nie możemy za dużo powiedzieć o tym z jakimi plikami mamy do czynienia (użytkownicy, którzy trochę używają już konsoli będą wiedzieć, które to pliki, które katalogi, a które to dowiązanie symboliczne).

Aby dowiedzieć się więcej informacji o zawartości katalogu przychodzi z pomocą opcja -l. Rysunek 2. Zawiera więcej informacji na temat zawartości katalogu, o których zaraz powiem.

ls - Wyświetlenie zawartości katalogu
Rys. 2. Polecenie ls -l


Na rysunku 3 pokazane zostało polecenie ls, z opcją -l, oraz konkretnym plikiem.

ls - Wyświetlenie zawartości katalogu
Rys. 3. Polecenie ls -l plik1

Gdzie:

Jak już zauważyłeś, oba w/w polecenia nie pokazują plików ukrytych (tj. zaczynających się od kropki). Tak więc, aby zobaczyć ukryte pliki, które znajdują się w katalogu należy użyć polecenia ls, z odpowiednią opcją. Opcje te, to -a, -A. Różnica pomiędzy nimi pokazana została na rysunku 4.

ls - Wyświetlenie zawartości katalogu
Rys. 4. Polecenie ls -a, ls -A

Jak widać, polecenie ls -a, wyświetla zawartość katalogu, wraz z wszystkimi ukrytymi plikami, oraz pokazuje "." (kropka), oraz ".." (dwie kropki) co odpowiednio oznacza katalog bieżący, oraz katalog nadrzędny. Polecenie ls -A, wyświetla zawartość katalogu wraz z plikami ukrytymi, lecz pomija "kropki".

Kopie zapasowe plików, zapisywane sa pod tą samą nazwą co edytowany plik + znak tyldy na samym końcu. Jeśli edytowaliśmy plik2, to kopia jego zostanie zapisana pod nazwą plik2~. Jeśli edytujemy dość dużą ilość plików, to podczas wyświetlania zawartości może nam to utrudniać wyszukiwanie konkretnego pliku. Tak więc można wyświetlić zawartość, bez plików, kończących się tyldą. Rysunek 5 ilustruje ten przypadek.

ls - Wyświetlenie zawartości katalogu
Rys. 5. Polecenie ls -B

Aby wyświetlić posortowane dane według czasu ostatniej modyfikacji (Najpóźniej edytowane są wyświetlane w pierwszej kolejności), trzeba użyć opcji -t. Aby to lepiej zobaczyć, trzeba połączyć tę opcję, z opcją -l. Co w ostateczności da (rys. 6):

$ ls -lt

ls - Wyświetlenie zawartości katalogu
Rys. 6. Polecenie ls -lt, ls -l

Jak widać na rysunku 6, również jest pokazane polecenie ls tylko z opcją -l, które sortuje zawartość katalogu według nazwy.

Można wyłączyć wyróżnienie kolorami za pomocą przełącznika --color=xxx, gdzie xxx:

Polecenie takie przyjmuje postać, jak na rysunku 7.

ls - Wyświetlenie zawartości katalogu
Rys. 7. Polecenie ls --color=xxx

Aby wyświetlić dołączony wskaźnik do wyświetlanych danych, trzeba zastosować opcję -F (rys. 8)

ls - Wyświetlenie zawartości katalogu
Rys. 8. Polecenie ls -F

Do wyniku wyświetlenia dołączany jest jeden z następujących wskaźników lub brak w przypadku zwykłych plików:

Aby wyświetlić dane w postaci podobnej do ls -l z tą różnicą, że nie zostanie wyświetlony właściciel pliku, nalezy użyć opcji: -g (rys. 9). Aby nie wyświetlić grupy pliku, należy użyć opcji -G (samo użycie ls -G, wyświetla zawartość w krótkiej formie, tak więc, aby efekt był podobny do wyniku polecenia z opcją -l, należy wpisać: ls -lG). Można również połączyć te dwie opcję, (wyświetlenie informacji w długiej formie, bez właściciela oraz grupy pliku) wpisując:

$ ls -gG

ls - Wyświetlenie zawartości katalogu
Rys. 9. Polecenie ls -g

Aby wyświetlić zawartość katalogu, z pominięciem nie których plików, można zastosować opcję --hide=WZORZEC. Załóżmy, że chcemy wyświetlić zawartość katalogu, bez plików z rozszerzeniem *.c. Musimy w konsoli wpisać:

$ ls --hide=*.c

Istotną rzeczą jest fakt, iż można łączyć wzorce, czyli na przykład możemy wyświetlić zawartość katalogu bez plików zakończonych na rozszerzeniu *.c, oraz plików zaczynających się frazą pl. Aby to zrobić, wystarczy w konsoli wpisać:

$ ls --hide={*.c,pl*}

Dla sprostowania, znak wieloznaczności "*" (gwiazdka) oznacza w pierwszym przypadku WSZYSTKIE pliki kończące się rozszerzeniem .c. Drugie polecenie jest analogiczne, z tą różnicą, że dodaliśmy drugi wzorzec - pl*, co oznacza WSZYSTKIE pliki rozpoczynające się frazą: pl. Rysunek 10 ilustruje zastosowanie opcji --hide.

ls - Wyświetlenie zawartości katalogu
Rys. 10. Polecenie ls --hide

Ważną rzeczą jest też to, że jeśli wpisujemy więcej wzorców, to muszą one być oddzielone przecinkami BEZ SPACJI pomiędzy nimi.
Wzorce można podawać w cudzysłowie, jeśli plik w nazwie zawiera spację, to można wpisać nazwę całego pliku, ze spacjami w cudzysłowie. Natomiast wpisując bez cudzysłowu, trzeba wpisać znak ukośnika (slash) przed każdą spacją, natomiast powłoka bash potrafi uzupełniać nazwy polecenia za pomocą klawisza tab (opisane w Używanie terminala), przez co wpisywanie nawet długich nazw, nie sprawia problemu. Rysunek 11 prezentuje wspomniane zachowanie.

ls - Wyświetlenie zawartości katalogu
Rys. 11. Polecenie ls --hide

Polecenie ls z opcją -I działa właściwie w ten sam sposób, co chwile wcześniej omówiona opcja --hide, natomiast opcja --hide jest ignorowana, jeśli zostanie użyta wraz z opcją -a. Opcja -I nie wyświetli plików zawartych we wzorcu, nawet jeśli będziemy wyświetlać pliki ukryte (rozpoczynające się od kropki - opcje -a, -A). Polecenie to może przybierać jedną z dwóch postaci:

$ ls -I "*.c"

$ ls --ignore={*.c,pl*}

Rysunek 12, pokazuje zastosowanie tego polecenia. A rysunek 13, pokazuje różnice pomiędzy opcjami --hide, a --ignore (-I).

ls - Wyświetlenie zawartości katalogu
Rys. 12. Polecenie ls --ignore

ls - Wyświetlenie zawartości katalogu
Rys. 13. Polecenie ls --hide i ls --ingore - różnice

Podczas wyświetlania zawartości katalogu w wersji rozszerzonej (opcja -l), jeśli występuje dowiązanie symboliczne, to wyświetlone zostają informacje o tym dowiązaniu symboliczny, a nie o pliku, który jest z nim związany. Aby wyświetlić informacje o pliku, do którego dowiązanie się odnosi, trzeba użyć opcji -L. Na rysunku 14 zostało to pokazane. Wraz opcją -L, została użyta opcja -l, po to, a żeby wyświetlić bardziej szczegółowe informacje (czyli, to co nas naprawdę interesuje).

ls - Wyświetlenie zawartości katalogu
Rys. 14. Polecenie ls -L

Jak łatwo można zauważyć, pierwsze polecenie pokazuje szczegółowe informacje na temat samego dowiązania symbolicznego. Natomiast w kolejnej linii polecenie pokazuje informacje na temat pliku, który jest związany z dowiązaniem, co udowodniono w trzeciej linii wyświetlając informacje o tym pliku (plik1).

Wyświetlanie listy plików, oddzielonych od siebie przecinkami uzyskuje się dzięki opcji -m.

ls - Wyświetlenie zawartości katalogu
Rys. 15. Polecenie ls -m

Aby wyświetlić informacje, w cudzysłowie, nalezy użyć opcji -Q.

ls - Wyświetlenie zawartości katalogu
Rys. 16. Polecenie ls -Q

Wyróżnić tekst można też na inne sposoby, za pomocą opcji --quoting-style=SLOWO.
Gdzie SLOWO:

Aby uzyskać wyróżnienie ze znakami ucieczki (escapes), musimy wpisać w terminalu (rys. 17):

$ ls --quoting-style=escape

ls - Wyświetlenie zawartości katalogu
Rys. 17. Polecenie ls --quoting-style=escape

Analogicznie zamiast escape wstawiamy inne, wyżej wymienione słowa.

Wyświetlanie informacji o zawartości podfolderów można uzyskać za pomocą opcji -R.

ls - Wyświetlenie zawartości katalogu
Rys. 18. Polecenie ls -R

Jest to dość użyteczne, ponieważ nie musimy wchodzić do każdego katalogu i wpisywać ciągle ls, wystarczy jedno polecenie i właściwie wiemy, co gdzie "siedzi".

Wyświetlone dane można posortować według kilku kryteriów, wspomniane na początku tej strony sortowanie według czasu ostatniej modyfikacji uzyskuje się za pomocą opcji -t. Natomiast jest jeszcze kilka innych kryteriów sortowania, a mianowicie: brak (-U), rozszerzenie (-X), rozmiar (-S), wersja (-v). W nawiasach zostały podane opcje, które trzeba użyć wraz z poleceniem ls. Można też posortować wyświetlone dane za pomocą opcji --sort=SLOWO.

Gdzie SLOWO:

A więc, aby wyświetlić dane posortowane alfabetycznie według rozszerzenia, należy postąpić jak na rysunku 19. Obie wersje dają ten sam, widoczny efekt.

ls - Wyświetlenie zawartości katalogu
Rys. 19. Polecenie ls -X, ls --sort=extension

Do wspomnianych powyżej kryteriów sortowania można dodać opcję -r, która odwraca kolejność wyszukiwania na przeciwny. Na rysunku 19, wyświetlone dane zostały posortowane alfabetycznie według rozszerzenia. Na rysunku 20 kolejność jest odwrotna.

ls - Wyświetlenie zawartości katalogu
Rys. 20. Polecenie ls -rX, ls -r --sort=extension

Wyświetlanie zawartości katalogu bez dodatkowych informacji (poza nazwą), każdy wpis w nowej lini realizuje się za pomocą opcji -1.

ls - Wyświetlenie zawartości katalogu
Rys. 21. Polecenie ls -1

W gruncie rzeczy (mówię to z doświadczenia) używa się dwóch lub trzech opcji do wyświetlania zawartości katalogu (oczywiście w takiej podstawowej i codziennej pracy z konsolą). Nie mniej jednak polecenie ls, jest bardzo rozbudowane i nie wszystkie opcję zostały przedstawione na tej stronie.


Wiecej informacji na temat programu ls znajdziesz w podreczniku systemowym man.
Wpisujac w konsoli man ls

Wiecej informacji na temat programu ls znajdziesz również w programie info.
Wpisujac w konsoli info coreutils 'ls invocation'

Zobacz także:

Some rights reserved 2010 - 2015 Artur Pyszczuk

| Strona Główna | Kontakt |