Polecenie drzewa w systemie Linux z przykładami
W systemach UNIX/LINUX, a także MS-DOS i Microsoft Windows drzewo jest rekursywnym programem wyświetlającym listę katalogów, który tworzy listę plików z wcięciem w głąb. Bez argumentów drzewo wyświetla listę plików w bieżącym katalogu. Po podaniu argumentów katalogu drzewo wyświetla po kolei wszystkie pliki lub katalogi znalezione w danych katalogach.
Pokazuje katalogi jako nawiasy i pliki jako liście, co ułatwia użytkownikowi wizualizację organizacji plików i katalogów w obrębie danej ścieżki.
Instalowanie polecenia `tree` w systemie Linux
Domyślnie polecenie drzewa nie jest zainstalowane. Wpisz następujące polecenie, aby zainstalować to samo
Instalacja w RHEL/CentOS/Fedora Linux
Wersja mniejsza lub równa Rhel8
sudo yum install tree
Uwaga: w wersji wyższej niż RHEL 8 potrzebujemy polecenia dnf.
Na przykład podczas instalacji w RHEL 9.
sudo dnf install tree
Sudo dnf drzewo instalacyjne
Instalacja w systemie Debian/Mint/Ubuntu Linux
sudo apt-get install tree
sudo apt-get drzewo instalacyjne
Instalacja w Apple OS X
brew install tree
Podstawowa składnia polecenia Tree w systemie Linux
tree [options]
Jeśli chcemy wyświetlić strukturę katalogów za pomocą prostego polecenia `drzewo` bez dodawania jakichkolwiek opcji.
drzewo
Tutaj polecenie `tree` wyświetli strukturę katalogów, zaczynając od bieżącego katalogu.
Opcje dostępne w poleceniu `tree` w systemie Linux
| Opcje | Opis |
|---|---|
| -pomoc | -pomoc |
| -wersja | Wyświetla wersję drzewa. |
| `-a` lub `-all` | Zawiera ukryte pliki i katalogi w drzewie. |
| `-d` lub `-tylko-dirs` | Lista tylko katalogów. |
| `-f` lub `-pełna-ścieżka` | Drukuje pełny prefiks ścieżki dla każdego pliku. |
| `-i` lub `-ignore-case` | Ignoruje wielkość liter podczas sortowania nazw plików. |
| -X | Pozostań tylko przy bieżącym systemie plików, tak jak w przypadku find -xdev. |
| -I | Nie wymieniaj plików pasujących do wzorca wieloznacznego. |
| `-p` lub `-przycinaj` | Pomija określony katalog z drzewa. |
| –limit pliku # | Nie schodź w dół do katalogów zawierających więcej niż # wpisów. |
| -T | Sortuj dane wyjściowe według czasu ostatniej modyfikacji zamiast alfabetycznie. |
| –noraport | Pomija drukowanie raportu o plikach i katalogach na końcu listy drzewa. |
| -S | Wydrukuj rozmiar każdego pliku wraz z nazwą. |
| -W | Wydrukuj nazwę użytkownika lub numer UID, jeśli nazwa użytkownika nie jest dostępna, pliku. |
| -G | Wydrukuj nazwę grupy lub numer GID, jeśli nazwa grupy nie jest dostępna, pliku |
| -D | Wydrukuj datę ostatniej modyfikacji wymienionego pliku. |
| –i-węzły | Drukuje numer i-węzła pliku lub katalogu |
| -urządzenie | Drukuje numer urządzenia, do którego należy plik lub katalog |
| -F | Dołącz `/' do katalogów, `=' do plików gniazd, `*' do plików wykonywalnych i `|' do FIFO, zgodnie z ls -F |
| -Q | Drukuj niedrukowalne znaki w nazwach plików jako znaki zapytania zamiast domyślnego zapisu marchewkowego. |
| -N | Drukuj znaki niedrukowalne w niezmienionej postaci zamiast domyślnego zapisu marchewkowego. |
| -R | Posortuj dane wyjściowe w odwrotnej kolejności alfabetycznej. |
| –dirpierwszy | Lista katalogów przed plikami. |
| -N | Zawsze wyłączaj kolorowanie, zastępowane przez opcję -C. |
| -C | Zawsze włączaj kolorowanie, używając wbudowanych domyślnych ustawień kolorów, jeśli zmienna środowiskowa LS_COLORS nie jest ustawiona. Przydatne do kolorowania danych wyjściowych do potoku. |
| -A | Włącz hack grafiki linii ANSI podczas drukowania linii wcięć. |
| -S | Włącz grafikę liniową ASCII (przydatne podczas używania czcionek w trybie konsoli Linux). Ta opcja jest teraz odpowiednikiem `–charset=IBM437′ i ostatecznie zostanie wycofana. |
| -Poziom L | Maksymalna głębokość wyświetlania drzewa katalogów. |
| -R | Rekurencyjnie przechodź przez katalogi na każdym poziomie drzewa (patrz opcja -L) i na każdym z nich ponownie wykonaj drzewo, dodając `-o 00Tree.html' jako nową opcję. |
| -H zasadaHREF | Włącz wyjście HTML, w tym odniesienia HTTP. Przydatne w przypadku witryn FTP. baseHREF podaje podstawową lokalizację FTP podczas korzystania z wyjścia HTML. Oznacza to, że katalogiem lokalnym może być `/local/ftp/pub', ale należy się do niego odwoływać jako `ftp://nazwa-hosta.organizacja.domena/pub' (baseHREF powinien mieć postać `ftp://nazwa_hosta.organizacja .domena'). Wskazówka: nie używaj linii ANSI z tą opcją i nie podawaj więcej niż jednego katalogu na liście katalogów. Jeśli chcesz używać kolorów poprzez arkusz stylów CSS, użyj opcji -C jako dodatku do tej opcji, aby wymusić wyświetlanie kolorów. |
| -T tytuł | Ustawia tytuł i ciąg nagłówka H1 w trybie wyjściowym HTML. |
| –zestaw znaków zestaw znaków | Ustaw zestaw znaków, który będzie używany podczas wysyłania kodu HTML i rysowania linii. |
| –brak linków | Wyłącza hiperłącza w wynikach HTML. |
| -o nazwa pliku | Wyślij dane wyjściowe do nazwy pliku. |
Przykłady
Wyświetla hierarchię drzewa katalogu
tree -a ./GFG
drzewo -a ./GFG
Lista plików z wprowadzonym wzorcem
tree -P sample* .
drzewo -P próbka* .
Wypisz te katalogi, które mają większą liczbę „N” plików/katalogów
tree --filelimit 3 ./GFG
drzewo – limit pliku 3 ./GFG
Lista plików wraz z ich uprawnieniami.
tree -p ./GFG
drzewo -p ./GFG
Drukuje numer urządzenia, do którego należy plik lub katalog.
tree --device ./GFG
drzewo –urządzenie ./GFG
Drukuje dane wyjściowe według czasu ostatniej modyfikacji zamiast alfabetycznie.
tree -t ./GFG
drzewo -t ./GFG
Wniosek
W tym artykule studiowaliśmy polecenie „drzewo” w systemie Linux, które jest potężnym narzędziem do wizualizacji struktury katalogów. Pozwala także użytkownikowi wyświetlić hierarchię plików i katalogów, w tym ukrytych, sortując dane wyjściowe w oparciu o różne kryteria, a także filtruje pliki za pomocą wzorców i generuje dane wyjściowe w formacie HTML. Ogólnie rzecz biorąc, możemy to być bardzo przydatne narzędzie.