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.gitczy.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, jakdu -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 pomijanode_modulesi.git, które zwykle śmiecą w wyniku.tree -h --du /var/log— rysuje drzewo/var/logz czytelnymi rozmiarami i sumami katalogów, żeby zobaczyć, co zjada miejsce.
Częste błędy i pułapki
Najczęstsza wpadka to command not found — tree 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).