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
Sekcja
Linux

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, deweloperem 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 strony i ograniczenia każdego podejścia oraz pokaże Ci dokładnie, kiedy używać którego narzędzia — w tym w środowiskach skryptowania i serwerów produkcyjnych.

Dlaczego Wyświetlanie Katalogów Jest Ważne

Na komputerze osobistym możesz czasami przeglądać folder "Dokumenty" lub "Pobrane" za pośrednictwem interfejsu graficznego. Na serwerze Linux jednak katalogi są sercem prawie 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 stron internetowych: 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 jest domyślnym narzędziem do wyświetlania zawartości katalogu. Jest to pierwsze polecenie, które uczą się użytkownicy Linux, i z dobrego powodu: jest szybkie, czytelne dla człowieka i dostępne w każdym systemie podobnym do Unix.

Podstawowe użycie

ls

To wyświetla wszystkie ukryte 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 wchodził do podkatalogów, ale wyświetlał same wpisy katalogów.
  • */ — Wzorzec glob 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 pliku
  • Liczba dowiązań twardych
  • Właściciel i grupa
  • 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

Wzorzec */ glob nie pasuje do katalogów ukrytych — tych, których nazwy zaczynają się od kropki (.), takich jak .git/, .ssh/ lub .config/. To jest 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, zostało zaprojektowane do użytku programistycznego, obsługuje przechodzenie rekurencyjne, domyślnie zawiera ukryte katalogi i zachowuje się konsekwentnie na różnych dystrybucjach Linux i ustawieniach lokalizacji.

Wylistuj wszystkie katalogi rekurencyjnie

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

To rekurencyjnie wylistuje każdy katalog na każdym poziomie głębokości poniżej Twojej bieżącej lokalizacji.

Wylistuj 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 najbardziej przenośny i niezawodny sposób wylistowania 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

Pamiętaj, że to będzie zawierać . w wynikach. Użyj -mindepth 1 razem z -maxdepth 1, aby czysto go wykluczyć.

Dołącz ukryte katalogi

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

find . -mindepth 1 -maxdepth 1 -type d

To wykaże .git/, .ssh/, .config/ i wszelkie inne katalogi z prefiksem kropki 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 ani konfiguracją kolorów terminala.
  • Tworzy spójne, parsowalne dane wyjściowe.

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: Za każdym razem, gdy potrzebujesz dołączonych ukrytych katalogów, wyników rekurencyjnych lub niezawodnych danych wyjściowych do skryptów i automatyzacji.

Metoda 3: Polecenie tree — Wizualne mapy katalogów

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 wyniku

tree -d -L 2
  • -d — Wyświetl tylko katalogi.
  • -L 2 — Ogranicz wyświetlanie do 2 poziomów głębi.

Przykładowy wynik:

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

Uwzględnij ukryte katalogi

tree -d -a

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

Method 4: Why You Should Avoid ls -l | grep "^d"

Czasami napotkasz ten wzorzec sugerowany online:

ls -l | grep "^d"

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

ProblemWyjaśnienie
Wrażliwość na ustawienia lokalneNiektóre ustawienia lokalne 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ć.
Ukryte katalogiNie są wyświetlane, tak jak w przypadku ls -d */.
Linki symboliczneDowiązania symboliczne wskazujące na katalogi wyświetlają się jako l, a nie d, więc są dyskretnie wykluczone.
Niezawodność skryptówParsowanie wyjścia ls w skryptach jest wyraźnie odradzane w najlepszych praktykach skryptów powłoki.

Zamiast tego użyj find. Jest to narzędzie stworzone do tego zadania i unika wszystkich powyższych pułapek.

Szybki Przewodnik: Wybór Właściwej Metody

CelNajlepsze Polecenie
Szybka interaktywna kontrola (tylko widoczne katalogi)ls -d */
Szczegółowe wyświetlanie 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 produkcyjnych środowisk serwerowych

Pracując na serwerze na żywo — czy to konto Shared Web Hosting czy w pełni zarządzany VPS — pamiętaj o tych zasadach:

  1. Zawsze sprawdzaj ukryte katalogi podczas audytów bezpieczeństwa. Katalogi takie jak .ssh/, .git/, .env/ i .config/ często zawierają poufne dane uwierzytelniające, 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, nigdy ls. Parsowanie ls jest dobrze znanym antypattern w skryptach powłoki. Polecenie find jest deterministyczne, niezależne od ustawień lokalnych i elegancko obsługuje przypadki graniczne.
  1. Łącz find z -exec do operacji zbiorczych. Na przykład, aby wyświetlić rozmiary katalogów:
   find . -mindepth 1 -maxdepth 1 -type d -exec du -sh {} ;
  1. Używaj tree -d -L 2 podczas wdrażania. Gdy po raz pierwszy łączysz się przez SSH z nieznanym serwerem, szybkie tree -d -L 2 z /var/www/ lub /home/ daje Ci natychmiastowy przegląd struktury.
  1. Ostrożnie ograniczaj uprawnienia. Wiedza o tym, jakie katalogi istnieją, to tylko część obrazu. Regularnie przeprowadzaj audyt uprawnień katalogów za pomocą ls -ld */, aby złapać błędnie skonfigurowane katalogi dostępne dla wszystkich.

Praktyczny przykład: Audyt katalogu serwera WWW

Załóżmy, że właśnie wdrożyłeś nową aplikację na Linux VPS. Oto praktyczny przepływ pracy łączący polecenia omówione w tym przewodniku:

# Navigate to the web root
cd /var/www/

# Quick visual check of top-level directories
ls -ld */

# Full audit including hidden directories
find . -mindepth 1 -maxdepth 1 -type d

# Visual map of the project structure (2 levels deep)
tree -d -L 2

# Check disk usage per directory
find . -mindepth 1 -maxdepth 1 -type d -exec du -sh {} ;

Ten przepływ pracy zajmuje mniej niż minutę i daje ci pełny obraz struktury katalogów serwera WWW, uprawnień i zużycia dysku — niezbędna wiedza dla każdego administratora zarządzającego VPS z cPanel lub niestandardowym stosem Linux.

Podsumowanie

Wyświetlanie katalogów to jedna z najbardziej fundamentalnych umiejętności Linux, jednak metoda, którą wybierzesz, ma większe znaczenie niż większość początkujących zdaje sobie sprawę. Oto podsumowanie kluczowych wniosków:

  • ls -d */ jest idealny do szybkich, interaktywnych kontroli — ale ignoruje ukryte katalogi i nie nadaje się do skryptowania.
  • find . -mindepth 1 -maxdepth 1 -type d jest standardem złotym dla niezawodnego, przenośnego, bezpiecznego dla skryptów wyświetlania katalogów, które obejmuje ukryte wpisy.
  • tree -d jest nieoceniony do wizualizacji złożonych struktur i komunikowania ich innym.
  • Unikaj ls -l | grep "^d" — jest kruchy, zależny od ustawień lokalnych i nie ma żadnych przewag nad find.

Niezależnie od tego, czy zarządzasz konfiguracjami w środowisku Dedicated Servers, wdrażasz aplikacje internetowe, czy po prostu po raz pierwszy eksplorując nową maszynę Linux, opanowanie tych poleceń zaoszczędzi Ci czasu, zapobiegnie kosztownym błędom i da Ci pewność siebie do poruszania się po dowolnym systemie plików z precyzją.

Wiersz poleceń to nie bariera — to supermoc. I zaczyna się od dokładnego wiedzy, gdzie się znajdujesz i co Cię otacza.