tree

Wyświetla strukturę katalogów w formie drzewa.

tree to narzędzie, które wypisuje zawartość katalogu w formie drzewa — z wcięciami, gałęziami i graficznymi łącznikami, zamiast płaskiej listy jak w ls. Dostajesz od razu obraz całej hierarchii: co siedzi w czym, jak głęboko i ile tego jest. Idealne, gdy wskakujesz do nieznanego projektu i chcesz w sekundę zrozumieć jego układ, albo gdy musisz komuś pokazać strukturę repozytorium bez robienia zrzutów ekranu. Na większości dystrybucji tree nie jest zainstalowany domyślnie — dorzucisz go przez apt install tree lub dnf install tree.

Składnia i najważniejsze opcje

Podstawowa forma jest banalnie prosta: tree [OPCJE] [KATALOG]. Bez podania katalogu tree rysuje drzewo od bieżącego folderu w dół.

  • -L poziom — ogranicza głębokość drzewa do podanej liczby poziomów (np. -L 2). Ratunek przy głębokich projektach.
  • -d — pokazuje wyłącznie katalogi, pomija pliki. Świetne do szybkiego rzutu oka na architekturę.
  • -a — wypisuje też pliki ukryte (te z kropką na początku, jak .git czy .env), których domyślnie nie widać.
  • -f — dokleja pełną ścieżkę do każdej pozycji, a nie tylko samą nazwę.
  • -h — pokazuje rozmiary plików w czytelnej formie (K, M, G) zamiast gołych bajtów.
  • --du — dla każdego katalogu liczy sumaryczny rozmiar wszystkich plików i podkatalogów, jak du -c.
  • -P wzorzec — pokazuje tylko pliki pasujące do wzorca (glob, np. -P "*.js").
  • -I wzorzec — odwrotnie: pomija pliki i katalogi pasujące do wzorca (np. -I "node_modules").

Przykłady użycia

  • tree — rysuje pełne drzewo bieżącego katalogu, ze wszystkimi podfolderami aż do dna.
  • tree -L 2 — pokazuje strukturę tylko do dwóch poziomów w głąb, żeby nie zalać terminala tysiącem linii.
  • tree -d — wyświetla wyłącznie katalogi, czyli sam szkielet projektu bez plików.
  • tree -a -I "node_modules|.git" — pokazuje wszystko łącznie z ukrytymi plikami, ale pomija node_modules i .git, które zwykle śmiecą w wyniku.
  • tree -h --du /var/log — rysuje drzewo /var/log z czytelnymi rozmiarami i sumami katalogów, żeby zobaczyć, co zjada miejsce.

Częste błędy i pułapki

Najczęstsza wpadka to command not foundtree po prostu nie jest domyślnie w systemie, więc najpierw go zainstaluj. Druga rzecz: puszczenie tree w katalogu domowym albo w korzeniu projektu z node_modules potrafi wygenerować dziesiątki tysięcy linii i skutecznie zablokować terminal — zawsze używaj -L lub -I, żeby okiełznać wynik. Pamiętaj też, że -P filtruje tylko pliki, a nie katalogi — puste foldery i tak się pokażą, chyba że dorzucisz --prune. Uważaj na wzorce w -P i -I: to globy powłoki (*, ?), nie wyrażenia regularne, więc *.log zadziała, ale składnia regexowa już nie. Warto też brać wzorzec w cudzysłów, żeby powłoka nie rozwinęła gwiazdki przed uruchomieniem komendy.

Powiązane komendy: ls (lista plików), du (rozmiary katalogów), find (wyszukiwanie po kryteriach), stat (szczegóły pliku).