15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
02.09.2025

Jak wyświetlić katalogi w Linux: Kompletny przewodnik dla początkujących i administratorów systemów

Praca w Linux często przypomina nawigację po ogromnej bibliotece. Zamiast półek masz katalogi (foldery), a zamiast książek masz pliki. Niezależnie od tego, czy jesteś doświadczonym administratorem systemu, programistą czy ciekawym początkującym, opanowanie podstaw nawigacji po systemie plików jest niezbędne. Jedną z najważniejszych umiejętności fundamentalnych jest umiejętność efektywnego i dokładnego wyświetlania katalogów.

Ten przewodnik przeprowadzi Cię przez każdą praktyczną metodę wyświetlania katalogów w Linux, wyjaśni mocne i słabe strony każdego podejścia oraz pokaże dokładnie, kiedy używać którego narzędzia — w tym w skryptach i środowiskach serwerów produkcyjnych.

Dlaczego wyświetlanie katalogów ma znaczenie

Na komputerze osobistym możesz czasami przeglądać folder “Dokumenty” lub “Pobrane” za pośrednictwem interfejsu graficznego. Na serwerze Linux katalogi są jednak sercem niemal każdego zadania administracyjnego, które będziesz wykonywać:

  • Administracja systemu: Szybko sprawdź, co znajduje się w /etc/, /var/log/ lub /usr/local/bin/.
  • Hosting internetowy: Zlokalizuj i zarządzaj folderami projektów w /var/www/ lub /home/.
  • Tworzenie oprogramowania: Zidentyfikuj katalogi kontroli wersji i środowiska, takie jak .git/ lub .venv/.
  • Audyt bezpieczeństwa: Potwierdź dokładnie, co jest zainstalowane, skonfigurowane i uruchomione w systemie.
  • Automatyzacja i skrypty: Niezawodnie wylicz katalogi do użytku w skryptach powłoki i zadaniach cron.

Jeśli nie potrafisz efektywnie wyświetlać katalogów, zawsze będziesz się czuć zdezorientowany — szczególnie w zdalnym środowisku VPS Hosting, gdzie nie możesz polegać na graficznym menedżerze plików.

Metoda 1: Polecenie ls — szybkie i proste

Polecenie ls to domyślne narzędzie do wyświetlania zawartości katalogów. To pierwsze polecenie, które uczą się większość użytkowników Linux, i słusznie: jest szybkie, czytelne dla człowieka i dostępne w każdym systemie podobnym do Unix.

Podstawowe użycie

ls

Wyświetla wszystkie nieukryte pliki i katalogi w bieżącym katalogu roboczym.

Wyświetl tylko katalogi

ls -d */

Oto co robi każda część:

  • -d — Mówi ls aby nie schodzić do podkatalogów, ale wyświetlić same wpisy katalogów.
  • */ — Wzorzec globu powłoki, który pasuje do wszystkich katalogów (i dowiązań symbolicznych do katalogów) w bieżącym folderze.

Wyświetl katalogi ze szczegółowymi informacjami

ls -ld */

Dodanie -l daje Ci długi format listy, który zawiera:

  • Uprawnienia do pliku
  • Liczbę twardych dowiązań
  • Właściciela i grupę
  • Rozmiar pliku
  • Znacznik czasu ostatniej modyfikacji

Przykładowe wyjście:

drwxr-xr-x 3 root root 4096 Jun 10 14:22 backups/
drwxr-xr-x 5 www-data www-data 4096 Jun 12 09:15 html/
drwxr-xr-x 2 deploy deploy 4096 Jun 11 18:03 logs/

Ograniczenie: katalogi ukryte są wykluczone

Glob */ nie pasuje do katalogów ukrytych — tych, których nazwy zaczynają się od kropki (.), takich jak .git/, .ssh/ lub .config/. To ważne zastrzeżenie, szczególnie w środowiskach wrażliwych na bezpieczeństwo.

Kiedy używać ls -d */: Szybkie, interaktywne sprawdzenia, gdy potrzebujesz tylko widocznych katalogów i nie wymagasz niezawodności skryptów.

Metoda 2: Polecenie find — potężne i niezawodne

Polecenie find to wybór profesjonalistów do wyliczania katalogów. W przeciwieństwie do ls, jest przeznaczone do użytku programistycznego, obsługuje rekurencyjne przechodzenie, domyślnie zawiera katalogi ukryte i zachowuje się konsekwentnie na różnych dystrybucjach Linux i ustawieniach lokalizacji.

Wyświetl wszystkie katalogi rekurencyjnie

find . -type d
  • . — Zacznij od bieżącego katalogu.
  • -type d — Pasuj tylko do wpisów katalogów (nie pliki, dowiązania symboliczne ani inne typy).

Spowoduje to rekurencyjne wyświetlenie każdego katalogu na każdym poziomie głębokości poniżej Twojej bieżącej lokalizacji.

Wyświetl tylko katalogi najwyższego poziomu (metoda przenośna)

find . -mindepth 1 -maxdepth 1 -type d
  • -mindepth 1 — Wyklucza bieżący katalog (.) z wyników.
  • -maxdepth 1 — Zapobiega rekurencji poza bezpośrednimi dziećmi.

To jest najprzenośniejszy i najbardziej niezawodny sposób wyświetlania tylko bezpośrednich podkatalogów bieżącego folderu i działa identycznie w systemach GNU/Linux, macOS i BSD.

Alternatywa dla systemów GNU/Linux

Na większości nowoczesnych dystrybucji Linux — w tym tych działających na Serwerach Dedykowanych — możesz również użyć:

find . -maxdepth 1 -type d

Zwróć uwagę, że to będzie zawierać . w wynikach. Użyj -mindepth 1 razem z -maxdepth 1 aby wyczyścić to.

Dołącz katalogi ukryte

Ponieważ find nie opiera się na globach powłoki, automatycznie zawiera katalogi ukryte:

find . -mindepth 1 -maxdepth 1 -type d

To pokaże .git/, .ssh/, .config/ i wszelkie inne katalogi poprzedzone kropką obok widocznych.

Użyj find w skryptach

find to prawidłowe narzędzie do skryptów powłoki, ponieważ:

  • Bezpiecznie obsługuje nazwy plików ze spacjami i znakami specjalnymi.
  • Nie jest dotknięte ustawieniami lokalizacji lub konfiguracjami kolorów terminala.
  • Tworzy spójne, parsowalne wyjście.

Przykład: Pętla po wszystkich katalogach najwyższego poziomu

find . -mindepth 1 -maxdepth 1 -type d | while read -r dir; do
    echo "Processing: $dir"
done

Kiedy używać find: Zawsze, gdy potrzebujesz dołączonych katalogów ukrytych, wyników rekurencyjnych lub niezawodnego wyjścia do skryptów i automatyzacji.

Metoda 3: Polecenie tree — mapy katalogów wizualnych

Polecenie tree renderuje wizualną, hierarchiczną mapę struktury katalogów. Nie jest instalowane domyślnie na wszystkich dystrybucjach, ale jest niezwykle przydatne do dokumentacji, wdrażania i zrozumienia złożonych układów projektów.

Zainstaluj tree

Debian/Ubuntu:

sudo apt install tree

CentOS/RHEL/AlmaLinux:

sudo yum install tree

Wyświetl tylko katalogi (bez plików)

tree -d

Ogranicz głębokość, aby uniknąć przytłaczającego wyjścia

tree -d -L 2
  • -d — Pokaż tylko katalogi.
  • -L 2 — Ogranicz wyświetlanie do 2 poziomów głębokie.

Przykładowe wyjście:

.
├── backups
│   └── daily
├── html
│   ├── assets
│   └── uploads
└── logs

Dołącz katalogi ukryte

tree -d -a

Kiedy używać tree: Wizualizacja struktur projektów, pisanie dokumentacji lub eksploracja nieznanego układu serwera po raz pierwszy.

Metoda 4: Dlaczego powinieneś unikać ls -l | grep "^d"

Czasami napotkasz ten wzorzec sugerowany online:

ls -l | grep "^d"

Pomysł polega na filtrowaniu długiego wyjścia listy ls w celu wyświetlenia tylko linii zaczynających się od d — co wskazuje katalog. Chociaż to wygląda sprytnie, jest fundamentalnie kruche i powinno być unikane w każdym poważnym kontekście:

ProblemWyjaśnienie
Wrażliwość na lokalizacjęNiektóre ustawienia lokalizacji lub konfiguracje terminala zmieniają format wyjścia ls -l, łamiąc wzorzec grep.
Kody kolorówJeśli ls wyświetla kody ucieczki ANSI, wzorzec ^d może nie pasować.
Katalogi ukryteNie są pokazane, tak jak w ls -d */.
Dowiązania symboliczneDowiązania symboliczne wskazujące na katalogi pokazują się jako l, a nie d, więc są po cichu wykluczone.
Niezawodność skryptówParsowanie wyjścia ls w skryptach jest wyraźnie odradzane w najlepszych praktykach skryptów powłoki.

Użyj find zamiast tego. Jest przeznaczony do tego zadania i unika wszystkich powyższych pułapek.

Szybki przewodnik: wybór właściwej metody

CelNajlepsze polecenie
Szybkie interaktywne sprawdzenie (tylko widoczne katalogi)ls -d */
Szczegółowa lista z uprawnieniamils -ld */
Katalogi najwyższego poziomu, w tym ukrytefind . -mindepth 1 -maxdepth 1 -type d
Wszystkie katalogi rekurencyjniefind . -type d
Wizualna struktura drzewatree -d
Użycie w skrypcie powłokifind . -mindepth 1 -maxdepth 1 -type d

Najlepsze praktyki dla środowisk serwerów produkcyjnych

Pracując na serwerze na żywo — niezależnie od tego, czy jest to konto Hosting Współdzielony czy w pełni zarządzany VPS — pamiętaj o tych zasadach:

  1. Zawsze sprawdzaj katalogi ukryte podczas audytów bezpieczeństwa. Katalogi takie jak .ssh/, .git/, .env/ i .config/ często zawierają poufne poświadczenia, klucze i pliki konfiguracyjne. Użyj find z -mindepth 1 aby upewnić się, że pojawiają się w Twoim wyjściu.
  1. Używaj find we wszystkich skryptach,
15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij