Co wyświetla ls?

Polecenie ls w Linuxie: Kompletny przewodnik

11/07/2025

Rating: 4.94 (3163 votes)

Polecenie ls jest jednym z fundamentów pracy w systemach Linux i UNIX. To proste, ale niezwykle potężne narzędzie, które pozwala na listowanie zawartości katalogów. Znajomość polecenia ls i jego opcji jest kluczowa dla każdego, kto pracuje z linią komend. W tym artykule zgłębimy tajniki polecenia ls, zaczynając od jego podstawowej funkcjonalności, poprzez popularne opcje, aż po zaawansowane warianty takie jak ls *, ls . Zrozumiemy różnice w zachowaniu polecenia w różnych powłokach, takich jak Bash i Zsh, oraz nauczymy się efektywnie wykorzystywać ls do nawigacji i zarządzania plikami w systemie Linux.

Co robi polecenie ls w Linuxie?
Komenda LS powoduje wyświetlenie samych nazw plików. Aby uzyskać listę wszystkich pozycji katalogu z dodatkowymi informacjami o plikach, należy zapoznać się z informacjami zawartymi w sekcji DIR (Wyświetlenie listy pozycji katalogu, bibliotek lub plików – List Directory Entries, Libraries, or Files).
Spis treści

Podstawowe użycie polecenia ls

Najprostsza forma polecenia ls, wpisana bez żadnych argumentów, wyświetla listę plików i katalogów znajdujących się w bieżącym katalogu roboczym. Jest to szybki sposób na sprawdzenie, co znajduje się w katalogu, w którym aktualnie pracujemy.

$ ls dokumenty/ zdjęcia/ linki_zewnętrzne/ kod.py readme.md 

Jak widać na powyższym przykładzie, polecenie ls wypisuje nazwy plików i katalogów. Domyślnie, katalogi są oznaczane ukośnikiem na końcu nazwy, co ułatwia ich odróżnienie od plików. Warto zauważyć, że podstawowe polecenie ls wyświetla tylko sam link symboliczny, a nie zawartość katalogu, do którego link prowadzi.

Popularne opcje polecenia ls

Polecenie ls oferuje szeroki wachlarz opcji, które pozwalają dostosować sposób wyświetlania informacji. Poniżej przedstawiamy kilka najczęściej używanych opcji:

Opcja -l (long listing)

Opcja -l (ang. long listing) wyświetla szczegółowe informacje o plikach i katalogach, takie jak uprawnienia, liczba dowiązań twardych, właściciel, grupa, rozmiar pliku, data ostatniej modyfikacji i nazwa. Jest to jedna z najczęściej używanych opcji, gdy potrzebujemy więcej informacji niż tylko nazwy plików.

$ ls -l drwxr-xr-x 2 użytkownik użytkownik 4096 Sie 24 12:00 dokumenty lrwxrwxrwx 1 użytkownik użytkownik 20 Sie 24 11:55 linki_zewnętrzne -> /ścieżka_zewnętrzna/dane/ drwxr-xr-x 2 użytkownik użytkownik 4096 Sie 24 12:00 zdjęcia -rw-r--r-- 1 użytkownik użytkownik 2048 Sie 25 15:00 kod.py -rw-r--r-- 1 użytkownik użytkownik 1024 Sie 24 14:00 readme.md 

W powyższym wyjściu: * Pierwsza kolumna to uprawnienia do pliku (np. drwxr-xr-x). Litera 'd' na początku oznacza katalog, '-' plik, a 'l' link symboliczny. * Druga kolumna to liczba dowiązań twardych. * Trzecia i czwarta kolumna to właściciel i grupa pliku. * Piąta kolumna to rozmiar pliku w bajtach. * Szósta, siódma i ósma kolumna to data i czas ostatniej modyfikacji. * Dziewiąta kolumna to nazwa pliku lub katalogu.

Opcja -lh (long listing human-readable)

Opcja -lh łączy funkcjonalność opcji -l z przedstawieniem rozmiarów plików w bardziej czytelnej formie, np. w kilobajtach (K), megabajtach (M) czy gigabajtach (G). Jest to szczególnie przydatne przy wyświetlaniu plików o dużych rozmiarach.

$ ls -lh drwxr-xr-x 2 użytkownik użytkownik 4.0K Sie 24 12:00 dokumenty lrwxrwxrwx 1 użytkownik użytkownik 20 Sie 24 11:55 linki_zewnętrzne -> /ścieżka_zewnętrzna/dane/ drwxr-xr-x 2 użytkownik użytkownik 4.0K Sie 24 12:00 zdjęcia -rw-r--r-- 1 użytkownik użytkownik 2.0K Sie 25 15:00 kod.py -rw-r--r-- 1 użytkownik użytkownik 1.0K Sie 24 14:00 readme.md 

Zauważ, że rozmiary plików są teraz przedstawione w kilobajtach (4.0K, 2.0K, 1.0K), co jest znacznie bardziej intuicyjne niż rozmiary w bajtach.

Opcja -t (sort by time)

Opcja -t sortuje listę plików i katalogów według czasu modyfikacji, wyświetlając najnowsze pliki na początku listy. Jest to przydatne, gdy chcemy szybko znaleźć ostatnio modyfikowane pliki.

Co robi polecenie ls w Linuxie?
Komenda LS powoduje wyświetlenie samych nazw plików. Aby uzyskać listę wszystkich pozycji katalogu z dodatkowymi informacjami o plikach, należy zapoznać się z informacjami zawartymi w sekcji DIR (Wyświetlenie listy pozycji katalogu, bibliotek lub plików – List Directory Entries, Libraries, or Files).
$ ls -t kod.py readme.md zdjęcia/ dokumenty/ linki_zewnętrzne/ 

W tym przykładzie, pliki kod.py i readme.md, które były ostatnio modyfikowane, znajdują się na początku listy.

Opcja -F (classify)

Opcja -F dodaje znak na końcu nazwy każdego elementu, wskazując jego typ. Katalogi są oznaczane ukośnikiem (/), linki symboliczne znakiem małpy (@), pliki wykonywalne gwiazdką (*), i tak dalej. Ułatwia to szybkie rozpoznawanie typów plików.

$ ls -F dokumenty/ linki_zewnętrzne@ zdjęcia/ kod.py* 

W powyższym przykładzie, dokumenty/ i zdjęcia/ to katalogi, linki_zewnętrzne@ to link symboliczny, a kod.py* to plik wykonywalny.

Opcja -u (access time)

Opcja -u powoduje, że ls sortuje i wyświetla elementy według czasu dostępu, a nie czasu modyfikacji. Czas dostępu zmienia się za każdym razem, gdy plik jest odczytywany. W połączeniu z opcją -t, wyświetla pliki posortowane od najdawniej używanych.

$ ls -u -t readme.md dokumenty/ zdjęcia/ linki_zewnętrzne/ kod.py 

Polecenie ls *

Polecenie ls * wykorzystuje symbol wieloznaczny gwiazdki (*). Gwiazdka w powłokach UNIX i Linux pasuje do dowolnej liczby znaków w nazwach plików i katalogów. W efekcie, ls * rozwija się do listy wszystkich plików i katalogów w bieżącym katalogu roboczym.

Zachowanie ls * jest podobne w powłokach Bash i Zsh dzięki mechanizmowi globbingu. ls * wyświetla wszystkie widoczne pliki i katalogi w bieżącym katalogu, ale nie obejmuje katalogów zaczynających się od kropki (plików ukrytych). W przeciwieństwie do zwykłego ls, ls * wyświetla zawartość katalogu, do którego prowadzi link symboliczny.

$ ls * kod.py dokumenty/ linki_zewnętrzne/ -> /ścieżka_zewnętrzna/dane/ zdjęcia/ readme.md 

Polecenie ls

Użycie podwójnej gwiazdki () w poleceniu ls również jest interpretowane przez mechanizm globbingu. Pierwsza gwiazdka pasuje do dowolnego pliku lub katalogu, a druga gwiazdka umożliwia rekursywne przeszukiwanie, wchodząc w podkatalogi i niżej. Pozwala to na eksplorację całego drzewa katalogów począwszy od bieżącego katalogu, o ile powłoka obsługuje tę funkcję.

Jaki jest wynik polecenia LS?
Polecenie ls służy do wyświetlania listy plików. Samo polecenie „ls” wyświetla wszystkie pliki w bieżącym katalogu z wyjątkiem plików ukrytych . Polecenie „ls *. tex” wyświetla tylko pliki kończące się na „.

ls w Bash

W Bash, domyślnie, polecenie ls zachowuje się tak samo jak ls *, wyświetlając wszystkie pliki i katalogi w bieżącym katalogu, ale nie wykonując rekursywnego przeszukiwania.

$ ls ** kod.py dokumenty/ linki_zewnętrzne/ -> /ścieżka_zewnętrzna/dane/ zdjęcia/ readme.md 

Innymi słowy, ls generuje taki sam wynik jak prostsze polecenie ls *.

ls w Zsh

W bardziej zaawansowanych powłokach, takich jak Zsh, polecenie ls nie tylko wyświetla pliki i katalogi w bieżącym katalogu, ale także rekursywnie listuje pliki w podkatalogach, katalogach poniżej nich i tak dalej.

$ ls kod.py dokumenty/report.docx dokumenty/notatki.txt linki_zewnętrzne/ -> /ścieżka_zewnętrzna/dane/ zdjęcia/rodzinne.jpg zdjęcia/wakacje/plaża.jpg zdjęcia/wakacje/góry.jpg readme.md 

Podsumowując, ls ia rekursywne listowanie plików i katalogów w zaawansowanych powłokach takich jak Zsh. Nadal jednak nie pokazuje podkatalogów linku symbolicznego.

Polecenie ls *

Polecenie ls *yć początkowo nieco zagadkowe, ponieważ dodatkowe gwiazdki (*) w tradycyjnych wzorcach globbingu w powłokach takich jak Bash nie oferują żadnej dodatkowej specyficzności.

Bash

W Bash nie ma natywnego rozróżnienia między *, czy * pod względem dopasowywania wzorców. Wszystkie są traktowane jako symbol wieloznaczny, który pasuje do dowolnego ciągu znaków w nazwach plików lub katalogów na bieżącym poziomie katalogu.

Zatem, użycie ls * w Bash wyświetla wszystkie pliki i katalogi w bieżącym katalogu, bez rekursywnego przeszukiwania.

Jaka jest różnica między LS* i LS?
Jak pokazano powyżej, polecenie ls * prezentuje wszystkie widoczne pliki i katalogi w bieżącym katalogu. W przeciwieństwie do polecenia ls, polecenie ls * wyświetla powiązany katalog /external_path/data/ .
$ ls *** kod.py dokumenty/ linki_zewnętrzne/ -> /ścieżka_zewnętrzna/dane/ zdjęcia/ readme.md 

Jednak inne powłoki mogą ponownie zachowywać się inaczej.

Zsh

Gdy uruchomisz ls * w Zsh, listuje pliki i katalogi rekursywnie z bieżącego katalogu, podobnie jak ls , ale z dodatkową możliwością podążania za linkami symbolicznymi do katalogów i wyświetlania ich zawartości. Jak wspomniano wcześniej, link symboliczny to plik, który wskazuje na inny plik lub katalog, służąc jako odniesienie lub skrót do jego celu.

$ ls *** kod.py dokumenty/ dokumenty/report.docx dokumenty/notatki.txt linki_zewnętrzne/ -> /ścieżka_zewnętrzna/dane/ linki_zewnętrzne/zewnętrzny1.txt linki_zewnętrzne/zewnętrzny2.doc zdjęcia/ zdjęcia/rodzinne.jpg zdjęcia/wakacje/ zdjęcia/wakacje/plaża.jpg zdjęcia/wakacje/góry.jpg readme.md 

Co istotne, w przeciwieństwie do wszystkich poprzednich poleceń, podczas listowania zawartości linku symbolicznego linki_zewnętrzne za pomocą ls *** w powłoce Zsh, ujawnia ono pliki, do których link prowadzi: zewnętrzny1.txt i zewnętrzny2.doc.

Polecenie ls [tekst]*

Wykonując polecenie ls [tekst]*, instruujemy system, aby wyświetlił elementy w bieżącym katalogu, których nazwy zaczynają się od ciągu znaków [tekst]. Ważne jest, aby tekst nie zawierał żadnych ukośników, ponieważ spowodowałoby to jego interpretację jako ścieżki.

To polecenie pozwala nam szybko filtrować i wyświetlać pliki i katalogi na podstawie wspólnego prefiksu.

$ ls dok* dokumenty/ 

Polecenie ls [tekst]* konkretnie celuje w elementy nazwane [tekst] i wyświetla wszystkie obiekty w bieżącym katalogu, które pasują do tego filtra.

Podsumowanie

W tym artykule omówiliśmy polecenie ls, jego warianty (ls *, ls ), wraz z formatem ls [katalog]* w systemach UNIX i Linux. Chociaż zachowanie wariantu z gwiazdką jest spójne w Bash, istnieją odrębne funkcje rekursywne w Zsh dla poleceń ls i ls *. Dodatkowo, rzuciliśmy światło na kilka podstawowych opcji, które rozszerzają możliwości polecenia ls. Dzięki tej wiedzy można sprawniej poruszać się po katalogach, szczególnie przy przechodzeniu między powłokami Bash i Zsh. Znajomość polecenia ls i jego wariantów jest niezbędna dla efektywnej pracy w środowisku Linux i pozwala na szybkie i sprawne zarządzanie plikami i katalogami z poziomu linii komend.

Najczęściej zadawane pytania (FAQ)

Co robi polecenie ls bez żadnych opcji?
Polecenie ls bez opcji wyświetla listę plików i katalogów w bieżącym katalogu roboczym.
Jaka jest różnica między ls * a ls?
ls wyświetla tylko zawartość bieżącego katalogu. ls * również wyświetla zawartość bieżącego katalogu, ale dodatkowo rozwija linki symboliczne do katalogów i wyświetla ich zawartość (w zależności od powłoki). ls * nie wyświetla plików ukrytych (zaczynających się od kropki), podczas gdy zwykłe ls również ich nie wyświetla, chyba że użyto opcji -a.
Czym różni się ls i Zsh?
W Bash ls działa tak samo jak ls *, wyświetlając zawartość bieżącego katalogu. W Zsh ls ** wykonuje rekursywne listowanie, wyświetlając zawartość bieżącego katalogu i wszystkich podkatalogów.
Do czego służy opcja -l polecenia ls?
Opcja -l (long listing) wyświetla szczegółowe informacje o plikach i katalogach, takie jak uprawnienia, właściciel, rozmiar, data modyfikacji itp.
Jak wyświetlić listę plików posortowanych według daty modyfikacji?
Użyj polecenia ls -t. Pliki zostaną posortowane od najnowszych do najstarszych.

Jeśli chcesz poznać inne artykuły podobne do Polecenie ls w Linuxie: Kompletny przewodnik, możesz odwiedzić kategorię Rachunkowość.

Go up