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
lsTo 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ówilsaby 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 dPamię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 dTo 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"
doneKiedy 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 treeCentOS/RHEL/AlmaLinux:
sudo yum install treeWyświetl tylko katalogi (bez plików)
tree -dOgranicz 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
└── logsUwzględnij ukryte katalogi
tree -d -aKiedy 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:
| Problem | Wyjaśnienie |
|---|---|
| Wrażliwość na ustawienia lokalne | Niektóre ustawienia lokalne lub konfiguracje terminala zmieniają format wyjścia ls -l, łamiąc wzorzec grep. |
| Kody kolorów | Jeśli ls wyświetla kody ucieczki ANSI, wzorzec ^d może nie pasować. |
| Ukryte katalogi | Nie są wyświetlane, tak jak w przypadku ls -d */. |
| Linki symboliczne | Dowiązania symboliczne wskazujące na katalogi wyświetlają się jako l, a nie d, więc są dyskretnie wykluczone. |
| Niezawodność skryptów | Parsowanie 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
| Cel | Najlepsze Polecenie |
|---|---|
| Szybka interaktywna kontrola (tylko widoczne katalogi) | ls -d */ |
| Szczegółowe wyświetlanie z uprawnieniami | ls -ld */ |
| Katalogi najwyższego poziomu, w tym ukryte | find . -mindepth 1 -maxdepth 1 -type d |
| Wszystkie katalogi rekurencyjnie | find . -type d |
| Wizualna struktura drzewa | tree -d |
| Użycie w skrypcie powłoki | find . -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:
- 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żyjfindz-mindepth 1, aby upewnić się, że pojawiają się w Twoim wyjściu.
- Używaj
findwe wszystkich skryptach, nigdyls. Parsowanielsjest dobrze znanym antypattern w skryptach powłoki. Poleceniefindjest deterministyczne, niezależne od ustawień lokalnych i elegancko obsługuje przypadki graniczne.
- Łącz
findz-execdo operacji zbiorczych. Na przykład, aby wyświetlić rozmiary katalogów:
find . -mindepth 1 -maxdepth 1 -type d -exec du -sh {} ;- Używaj
tree -d -L 2podczas wdrażania. Gdy po raz pierwszy łączysz się przez SSH z nieznanym serwerem, szybkietree -d -L 2z/var/www/lub/home/daje Ci natychmiastowy przegląd struktury.
- 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 djest standardem złotym dla niezawodnego, przenośnego, bezpiecznego dla skryptów wyświetlania katalogów, które obejmuje ukryte wpisy.tree -djest 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 nadfind.
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.
na wszystkich usługach hostingowych