Polecenie drzewa bash

Polecenie drzewa bash

Polecenie Bash Tree jest porównywalne ze znanym poleceniem LS Linux, które służy do wyświetlania plików i katalogów. Główną różnicą między poleceniami jest to, że pliki i foldery są prezentowane w strukturze przypominającej drzewo przez polecenie drzewa. Polecenie drzewa itera hierarchii plików i drukuje pliki i subkredyty na liście sformatowanej z głębokim wcięciem. Dzięki poleceniu drzewa BASH możemy szybko określić pozycje plików i folderów, zbadać ich uprawnienia do dostępu, a także pobrać ukryte pliki lub katalogi.

Przykład nr 1: Instalacja drzewa w Bash.

Polecenie drzewa nie jest wbudowanym poleceniem Bash. Musimy zainstalować polecenie drzewa w Bash, zanim przywołamy je do skorupy bash. Używamy uprawnień sudo z poleceniem apt do instalacji modułu drzewa w bashu. Po wykonaniu polecenia instalacji poprosił hasło do uwierzytelnienia, a następnie zainstalował drzewo w bashu. Tutaj zainstalowaliśmy już polecenie drzewa z najnowszą wersją.

$ Sudo apt zainstalować drzewo
[sudo] Hasło dla Linux:
Czytanie list pakietów… gotowe
Budowanie drzewa zależności
Czytanie informacji o stanie… zrobione
Zostaną zainstalowane następujące nowe pakiety:
drzewo
0 Uaktualniono, 1 nowo zainstalowany, 0 do usunięcia i 0 nie zaktualizowany.
Muszę zdobyć 43.0 kb archiwum.
Po tej operacji zostanie użyte 115 kb dodatkowej przestrzeni dysku.
Get: 1 http: // pk.archiwum.Ubuntu.com/Ubuntu Focal/Universe AMD64 Tree AMD64 1.8.0-1 [43.0 kb]
Posadził 43.0 kb w 1s (33.4 kb/s)
Wybieranie wcześniej niewybranego drzewa pakietu.
(Czytanie bazy danych… 188740 plików i aktualnie zainstalowanych katalogów.)
Przygotowanie do rozpakowania… /Tree_1.8.0-1_AMD64.Deb…
Rozpakowanie drzewa (1.8.0-1)…
Konfigurowanie drzewa (1.8.0-1)…
Wyzwalacze przetwarzania dla MAN-DB (2.9.1-1)…

Teraz polecenie drzewa może być używane w bashu, ponieważ zainstalowaliśmy ją w naszym systemie. Do sprawdzenia wersji polecenia drzewa używane jest następujące polecenie. Polecenie zwróciło najnowszą wersję drzewa zainstalowanego w naszym systemie.

$ -Treeversion
drzewo V1.8.0 (c) 1996 - 2018: Steve Baker, Thomas Moore, Francesc Rocher, Florian Sesser, Kyosuke Tokoro

Aby uzyskać jakąkolwiek pomoc dotyczącą polecenia drzewa Bash, możemy uruchomić następujące polecenie drzewa z opcją „-Help”. Wymienia wszystkie niezbędne informacje związane z poleceniem drzewa w powładzie bashu, jak pokazano na obrazie.

$ Tree -Help
Zastosowanie: Tree [-acdfghilnpqrstuvxacdfjqnsux] [-h basehref] [-t Tytuł]
[-L poziom [-r]] [-p wzór] [-i wzór] [-o nazwa pliku] [--version]
[--help] [--inodes] [--evice] [--NORPORT] [--Nolinks] [--Dirsfirst]
[-Charset Charset] [--filelimit [=]#] [--Si] [-Timefmt [=]]
[--SORT [=]] [--MatchDirs] [--gnore-case] [--fromfile] [-]
[[[]
------- Opcje aukcji -------
-Wszystkie pliki są wymienione.
-Tylko katalogi listy.
-l Kliknij symboliczne linki, takie jak katalogi.
-f Wydrukuj pełną ścieżkę dla każdego pliku.
-x pozostań tylko na bieżącym systemie plików.
-L Pozyskiwanie zejdź tylko na poziomie.
-Rerun drzewo, gdy osiągnął poziom maksymalnego poziomu.
-Lista wzorów p Tylko te pliki, które pasują do podanego wzoru.
-I wzorzec nie wymienia plików, które pasują do podanego wzoru.
--ignoruj ​​przypadek ignoruj ​​przypadek podczas dopasowania wzorca.
--MatchDirs zawierają nazwy katalogów w dopasowaniu wzoru -p.
--Noreport wyłącz liczbę plików/katalogu na końcu listy drzew.
--Charset X Użyj Charset X dla wyjścia terminalu/HTML i linii wcięcia.
--fileLIMit # nie zstopnij Dirs z więcej niż # plikami w nich.
--Timefmt Drukuj i formatować czas zgodnie z formatem .
-o Wyjście nazwy pliku do pliku zamiast stdout.
------- Opcje pliku -------
-q Wydrukuj znaki nieprillowe jako '?'.
-N Wydrukuj znaki nieprillowe.
-Q Nazwy plików cytatu z podwójnymi cytatami.
-P Wydrukuj zabezpieczenia dla każdego pliku.
-U wyświetla właściciel pliku lub numer UID.
-G wyświetla właściciel grupy plików lub numer GID.
-s Wydrukuj rozmiar w bajtach każdego pliku.
-H Wydrukuj rozmiar w bardziej czytelny ludzki sposób.
--Si lubi -h, ale używaj w jednostkach SI (moce 1000).
-D Wydrukuj datę ostatniej modyfikacji lub (-c) zmiana statusu.
-F Dodaj „/”, '=', '*', '@', '|' lub '>' zgodnie z ls -f.
--INODES Wydrukuj liczbę inode każdego pliku.
--urządzenie drukuj numer identyfikatora urządzenia, do którego należy każdy plik.
------- Opcje sortowania -------
-v Pliki sortowania alfanumerycznie według wersji.
-T SORP Pliki według ostatniego czasu modyfikacji.
-C Pliki sortowania według ostatniego czasu zmiany statusu.
-U Zostaw pliki niepotrzebne.
-r Odwróć kolejność tego rodzaju.
--Dirsfirst List DiActory przed plikami (-u wyłącza się).
--sort x Wybierz sort: nazwa, wersja, rozmiar, mtime, ctime.
------- Opcje grafiki -------
-Nie drukuję linii wcięcia.
-Drukuj linie graficzne linie wcięcia.
-S Drukuj z CP437 (konsolowy) Linie wcięcia graficznego.
-n Zależy wyłącznie kolorystyka (-c zastępuje).
-C Włącz kolorowanie zawsze.
------- Opcje XML/HTML/JSON -------
-X drukuje reprezentację drzewa XML.
-J drukuje reprezentację drzewa JSON.
-H BaseHref drukuje format HTML z BaseHref jako najlepszy katalog.
-T Ciąg Wymień domyślny tytuł HTML i nagłówek H1 na ciąg.
--Nolinki wyłączają hiperłącza w wyjściu HTML.
------- Opcje wejściowe -------
--z pliku odczytuje ścieżki z plików (.= stdin)
------- Różne opcje -------
--Wersja Wersja i wyjście.
--Pomóż wydrukować użycie, a ta wiadomość pomoc.
-- Opcje przetwarzające Terminator.

Ponadto możemy również szczegółowo uzyskać informację polecenia drzewa, uruchamiając polecenie drzewa za pomocą słowa kluczowego „Man”.

$ Tree Man

Przykład nr 2: Korzystanie z polecenia drzewa w Bash.

Proces instalacji polecenia drzewa jest dokonany w powyższej sekcji. Teraz, aby użyć polecenia drzewa w bashu, musimy tylko podać słowo kluczowe „drzewo” w skorupce bash. Polecenie „drzewa” wyświetla zawartość określonego katalogu w formacie drzewa. Tutaj daliśmy polecenie drzewa bez żadnego argumentu. Gdy polecenie drzewa jest wykonywane bez żadnego argumentu, wyświetliło strukturę drzewa wszystkich plików i katalogów bieżącej ścieżki. Obraz pokazuje pliki naszej ścieżki domowej i katalogi z ich plikami w strukturze drzewa. Ostatecznie wyświetlał całkowitą katalogi i pliki w naszym katalogu domowym.

$ Tree
├wiąt Linux1.PDF
├wiąt Linux2.PDF
└wiąt Linux3.PDF
0 katalogów, 3 pliki

Wyjście może być bardziej czytelne, używając polecenia drzewa za pomocą słowa kluczowego „mniej”. Przydaje się, gdy chcesz wymienić wszystkie pliki i foldery w katalogu. Poniżej podaliśmy polecenie drzewa, w którym używamy symbolu „/” z słowem kluczowym drzewa, aby spojrzeć na pliki i foldery w bieżącym katalogu. Następnie użyliśmy rurociągu „|” symbol, w którym określono słowo kluczowe „mniej”. Widzimy w obrazie, że tylko kilka folderów i plików jest wymienionych w postaci struktury przypominającej drzewo. Dwukropek „:” znajduje się na końcu, który na prasie wyświetli kolejne foldery i pliki bieżącego katalogu.

$ Tree / | mniej
/
Bin -> usr/bin
├wiąt
│ ├── Config-5.15.0-46-generalny
│ ├── Config-5.15.0-56-generalny
│ ├── EFI [Otwarcie błędu Dir]
Grub │ ├──
│ │ ├── czcionki
│ │ │ └── Unicode.PF2
│ ├ ├── gfxblackList.tekst
Grub │ │ ├t.CFG
│ ├ ├── Grubenv
│ ├ ├── i386-PC
│ │ │ ├� 915 rozdzielczość.mod
│ │ │ ├� ACPI.mod
│ │ ├ ├── Adler32.mod
│ │ │ ├─lok.mod
│ │ │ ├── AFS.mod
│ │ │ ├├t Ahci.mod
│ │ ├ ├── All_Video.mod
│ │ ├t.mod
│ │ │ ├── archelp.mod
│ │ │ ├�t ata.mod
:

Do wyświetlania drzewa procesu można również użyć polecenia Bash Tree. Rozważ poniższe polecenie, w którym „PROC” reprezentuje proces działający w bieżącym katalogu. Po naciśnięciu Enter do polecenia drzewa generuje on proces drzewa naszego katalogu w skorupce bash.

$ Tree /Proc
│ ├� użytkownik
│ │ ├── Max_cgroup_namespaces
│ ├ ├── Max_fanotify_groups
│ ├ ├── Max_fanotify_marks
│ ├ ├wiąt max_inotify_instances
│ ├ ├── Max_inotify_watches
│ ├ ├── Max_IPC_Namesspaces
│ ├ ├── Max_Mnt_namesspaces
│ ├ ├�t Max_Net_namesspaces
│ ├ ├── Max_pid_namespaces
│ ├ ├�t Max_Time_namespaces
│ ├ ├── Max_user_namespaces
│ └ └�t Max_Uts_namespaces
│ └wiąt vm
│ ├── admin_reserve_kbytes
│ ├── Odkształcenie_proaktywność
│ ├── Compact_memory
│ ├── Compact_unevictable_allowed
│ ├── Dirty_background_Bytes
│ ├── Dirty_background_ratio
│ ├── Dirty_Bytes
│ ├── Dirty_expire_centisecs
│ ├── Dirty_ratio
│ ├── Dirtytime_Expire_Seconds
│ ├─anek diriteback_centisecs
│ ├── Drop_caches
│ ├── extfrag_threshold
│ ├wiąt hugetlb_shm_group
│ ├── laptop_mode
│ ├── Legacy_Va_layout
│ ├wiąt Lowmem_Reserve_Ratio
│ ├── Max_Map_Count
│ ├wiąt pamięć_failure_early_kill
│ ├wiąt pamięć_failure_reCovery
│ ├── Min_free_kbytes
│ ├── Min_Slab_Ratio
│ ├wiąt min_unmapped_ratio
│ ├wiąt mmap_min_addr
│ ├�t mmap_rnd_bits
│ ├�t mmap_rnd_compat_bits
│ ├── NR_HugePages
│ ├wiąt nr_hugePages_Mempolicy
│ ├── NR_OverCommit_HugePages
│ ├── Numa_stat
│ ├── Numa_zonelist_order
│ ├wiąt oom_dump_tasks
│ ├── oom_kill_alloCating_Task
│ ├── OverCommit_kbytes
│ ├── OverCommit_Memory
│ ├── OverCommit_Ratio
│ ├── klaster stron
│ ├─wią page_lock_unfairness
│ ├── Panic_on_oom
│ ├wiąt percpu_pagelist_high_fraction
│ ├── STAT_INTERVAL
│ ├── Stat_refresh
│ ├─wią
│ ├── ANPRIVILEGED_USERFAULTFD
│ ├── user_reserve_kbytes
│ ├── VFS_CACHE_PRESSURE
│ ├─anek Watermark_Boost_Factor
│ ├─anek Watermark_Scale_Factor
│ └── Zone_reclaim_mode
├wiąt wyzwalacz sysrq
├wiąt sysvipc
│ ├� MSG
│ ├wiąt sem
│ └� SHM
├wiąt wątek -self -> 5259/zadanie/5259
├wiąt timer_list
├wiąt tty
│ ├── sterownik [otwieranie błędu Dir]
│ ├── sterowniki
│ ├── ldisc
│ └── ldiscs
├ Następ czas aktualizacji
Wersja ├wiąt
├wiąt version_signature
├wiąt vmallocinfo
├wiąt VMSTAT
└── Zoneinfo
10618 katalogi, 169916 plików

Przykład nr 3: Korzystanie z polecenia drzewa z różnymi opcjami w Bash.

Opcja polecenia drzewa „-a”:

Polecenie drzewa obsługuje różne opcje w Bash, których użyliśmy w tej sekcji, aby zademonstrować wydajność każdej opcji polecenia drzewa w Bash. Po pierwsze, wdrożyliśmy polecenie drzewa z opcją „-a”. Opcja „-a” pobrała wszystkie pliki katalogu, w tym ukryte pliki, które można zobaczyć na obrazie powłoki bash.

drzewo -a
-zamknięcie.JSONLZ4
│ ├ ├├t stan sesji.JSON
│ │ └──.JSON
DirectoryTree │ ├t.JSON
│ ├─wią szyfrowane-openpgp-passphraza.tekst
│ ├── Preferencje rozszerzenia.JSON
│ ├� rozszerzenia.JSON
│ ├── favicons.sqlite
Formhistory │ ├t.sqlite
│ ├─anek global-messages-db.sqlite
Historia │ ├t.sqlite
│ ├── Key4.db
│ ├wiąt zamek -> 127.0.1.1: +2021
│ ├── Mailviews.Dat
│ ├── Minidumps
│ ├─anek OpenPGP.sqlite
│ ├wiąt .Parentlock
│ ├t Uprawnienia.sqlite
│ ├── PKCS11.tekst
│ ├wiące miejsca.sqlite
│ ├─wią pref.JS
│ ├─wią zapisane TELEMETRICE
│ └ └� 0C85AD5F-60C2-40D9-A342-F533E121A844
│ ├── Wyszukaj.JSON.Mozlz4
│ ├── Security_State
│ ├─wią SessionCheckPoints.JSON
│ ├� Ustawienia
Dane │ │ └�.bezpieczna.kosz
│ ├wiąt SieteSecurityServicestate.tekst
│ ├── Przechowywanie
│ │ ├──
│ ├ ├� ├t-archiwum.sqlite
│ ├ ├── trwałe
│ │ │ └└t
│ │ │ ├─lok IDB
│ │ │ │t 3870112724rsegmnoitTet-es.akta
│ │ │ │t 3870112724rsegmnoitTet-es.sqlite
│ │ └ └wiąt .metadane-v2
│ │ └─wią Tymczasowe
│ ├── Przechowywanie.sqlite
│ ├t razy.JSON
│ └── Xulstore.JSON
├wiąt .vboxclient-clipboard.pid
├wiąt .VBOXCLIENT-DISPLAY-SVGA-X11.pid
├wiąt .vboxclient-draganddrop.pid
├wiąt .VBOXCLIENT SEDEamless.pid
└wiąt .WGET-HSTS
1262 katalogi, 10126 plików

Tutaj ponownie użyliśmy polecenia drzewa bash z opcją „-a” do wyświetlenia hierarchii drzewa określonego katalogu „Snap” w skorupce bash. Katalog Snap wyświetlał wszystkie pliki w formacie drzewa na zrzucie ekranu poniżej.

drzewo -a ./pstryknąć
-a [dir otwierający błąd]
./Snap [Błąd otwierający reż]
0 katalogów, 0 plików

Opcja polecenia drzewa „-f”: Zastosowanie flagi -f z poleceniem drzewa polega na wymierzeniu danych katalogu wraz z całym prefiksem ścieżki dla każdego podlokdaryzowania i pliku. Tutaj użyliśmy polecenia drzewa z flagą „-F” w uprawnieniu sudo, który prosi o zgodę dostępu do root zarejestrowanych użytkownika. Pełna ścieżka plików i podwodników można wizualizować na podanym obrazie powłoki Bash.

$ sudo drzewo -f
[sudo] Hasło dla Linux:
.
├wiąt ./Polecenie drzewa bash.Docx
├wiąt ./Linux1.PDF
├wiąt ./Linux2.PDF
└wiąt ./Linux3.PDF
0 katalogów, 4 pliki

Opcja polecenia drzewa „-s”: Następnie polecenie drzewa jest używane z opcją „-s”. Opcja „-S” pozwala nam drukować nie tylko nazwy plików, ale także ich rozmiary w bajtach. W poniższym poleceniu drzewa flaga „-f” jest najpierw dodana, aby wziąć hierarchię plików i katalogów wraz ze ścieżką. Następnie flaga „-S” służy do określenia rozmiaru plików drzew i podwodnych.

$ Tree -f -s
-f [Dir otwierający błąd]
0 katalogów, 0 plików

Opcja polecenia drzewa „-DF”: Opcja „D” umożliwia poleceniu drzewa wygenerowanie hierarchii drzewa podlokdaryzmów bez nazw plików. Ustanowiliśmy polecenie drzewa, w którym opcja „-D” i „-f” jest łączona w celu pobrania podkatalogu z pełną ścieżką.

$ sudo drzewo -df
0 katalogów

Opcja polecenia drzewa „-L”: Opcja polecenia drzewa „-L” pozwala nam określić maksymalną liczbę folderów pobieranych przez polecenie drzewa. Ograniczenie głębokości jest korzystne, gdy musimy tylko zbadać kilka najważniejszych etapów bardzo głębokich struktur folderów. W poniższym poleceniu Bash Tree opcja „-L” jest podana z liczbą „3”, która wskazuje, że trzy pliki lub podwodniki mogą być wyświetlane tylko w hierarchii drzew.

$ Tree -l 3
-L [Błąd otwierający reż]
3 [Dir otwierający błąd]

Wniosek

Polecenie Bash Tree pomaga dowiedzieć się, w jaki sposób pliki są zorganizowane w naszym systemie. Najpierw zainstalowaliśmy polecenie drzewa w powładzie bash, a następnie otrzymaliśmy krótki szczegół na temat polecenia za pomocą opcji mężczyzny i pomocy. Polecenie drzewa BASH ma różne opcje, z których niewiele jest zaimplementowanych w BASH, aby zbadać funkcjonalność tych opcji.