BASH Tree Command

BASH Tree Command

Der Befehl Bash-Baum ist vergleichbar mit dem bekannten LS-Befehl von Linux, mit dem die Dateien und Verzeichnisse aufgeführt sind. Der Hauptunterschied zwischen den Befehlen besteht darin, dass die Dateien und Ordner von dem Baumbefehl in einer Baumstruktur dargestellt werden. Der Befehl des Baums durchgeht eine Dateihierarchie und druckt die Dateien und Unterverzeichnisse in einer formatierten Liste mit Tiefeneinzugs. Mit dem Baumbefehl von Bash können wir schnell die Positionen der Dateien und Ordner bestimmen, deren Zugriffsberechtigungen untersuchen und auch die versteckten Dateien oder Verzeichnisse abgerufen.

Beispiel Nr. 1: Installation des Baumes in Bash.

Der Baumbefehl ist nicht der integrierte Befehl von Bash. Wir müssen den Baumbefehl in Bash installieren, bevor wir ihn in die Bash -Shell anrufen. Wir verwenden die Sudo -Berechtigungen mit dem APT -Befehl, um das Baummodul in der Bash zu installieren. Sobald der Befehl zur Installation ausgeführt wurde, wurde das Passwort zur Authentifizierung aufgefragt und dann den Baum in der Bash installiert. Hier haben wir den Baumbefehl bereits mit der neuesten Version installiert.

$ Sudo Apt Installieren Sie Baum
[sudo] Passwort für Linux:
Paketlisten lesen… erledigt
Bauen von Abhängigkeitsbaum
Lesen staatliche Informationen… erledigt
Die folgenden neuen Pakete werden installiert:
Baum
0 Upgrade, 1 neu installiert, 0 zum Entfernen und 0 nicht aktualisiert.
Müssen 43 bekommen.0 kb Archive.
Nach diesem Vorgang werden 115 KB zusätzlicher Festplattenraum verwendet.
Holen Sie sich: 1 http: // pk.Archiv.Ubuntu.Com/Ubuntu Focal/Universe AMD64 Tree AMD64 1.8.0-1 [43.0 kb]
Abgerufen 43.0 kb in 1s (33.4 kb/s)
Wählen Sie zuvor nicht ausgewählte Paketbaum aus.
(Lesen der Datenbank… 188740 Dateien und Verzeichnisse derzeit installiert.)
Vorbereitung auf das Auspacken… /Tree_1.8.0-1_AMD64.Deb…
Baum auspacken (1.8.0-1)…
Tree einrichten (1.8.0-1)…
Verarbeitungsauslöser für Man-DB (2.9.1-1)…

Jetzt kann der Baumbefehl innerhalb der Bash verwendet werden, da wir ihn in unserem System installiert haben. Der folgende Befehl wird verwendet, um die Version des Baumbefehls zu überprüfen. Der Befehl gab die neueste Version des in unserem System installierten Baums zurück.

$ Tree -Verssion
Baum v1.8.0 (c) 1996 - 2018 von Steve Baker, Thomas Moore, Francesc Rocher, Florian Sesser, Kyosuke Tokoro

Um Hilfe zum Bree-Befehl von Bash zu erhalten, können wir den folgenden Baumbefehl mit der Option "-Help" ausführen. Es listet alle erforderlichen Informationen auf den Baumbefehl in der Bash -Shell auf, wie im Bild gezeigt.

$ tree -help
Verwendung: Baum [-Acdfghilnpqrstuvxacdfjqnsux] [-h Basehref] [-t Titel]
[-L-Ebene [-r]] [-p Muster] [-i Muster] [-O Dateiname] [--version]
[-HELP] [--inodes] [-Device] [--Noreport] [--Nolinks] [--dirsfirst]
[--CharSet charSet] [-filelimit [=]#] [--si] [-Zeitfmt [=]]
[-Sort [=]] [--matchdirs] [-IGNORE-CASE] [--FromFile] [-]
[]
------- Auflistungsoptionen -------
-Alle Dateien sind aufgeführt.
-D Listen Sie nur Verzeichnisse auf.
-l Folgen Sie symbolischen Links wie Verzeichnisse.
-F Drucken Sie das vollständige Pfadpräfix für jede Datei.
-x Bleiben Sie nur auf dem aktuellen Dateisystem.
-L Level steigen nur auf Level -Verzeichnisse tief ab.
-R -Wiedererlebbaum, wenn maximal Dir -Level erreicht wurde.
-P -Musterliste nur die Dateien, die dem angegebenen Muster übereinstimmen.
-I Muster listet keine Dateien auf, die dem angegebenen Muster übereinstimmen.
--Ignorieren Sie-ignorieren Sie den Fall, wenn das Muster angepasst wird.
--MatchDirs enthalten Verzeichnisnamen in -P -Muster -Matching.
--Noreport deaktiviert Datei-/Verzeichnisanzahl am Ende der Baumauflistung.
--charSet x verwenden charset x für terminal/html und die Eindrückungslinieausgabe.
--filelimit # steigen Sie nicht mit mehr als # Dateien in Diren ab.
--timefmt Drucken und Formatzeit gemäß dem Format .
-o Dateinameausgabe anstelle von STDOut.
------- Dateioptionen -------
-q Drucken Sie nicht druckbare Zeichen als '?''.
-N drucken nicht printbaren Zeichen wie es ist.
-Q Zitat Dateinamen mit doppelten Zitaten.
-p Drucken Sie die Schutzmaßnahmen für jede Datei aus.
-U Zeigt den Dateibesitzer oder die UID -Nummer an.
-G zeigt den Besitzer oder die GID -Nummer der Dateigruppe an.
-s Drucken Sie die Größe in Bytes jeder Datei aus.
-H Drucken Sie die Größe auf menschlicher lesbarer Weise.
--Si mag -h, aber in Si -Einheiten verwendet (Kräfte von 1000).
-D Drucken Sie das Datum der letzten Änderung oder (-C) Statusänderung aus.
-F endet '/', '=', '*', '@', '|' ' oder '>' gemäß ls -f.
--Inodes drucken Inodenummer jeder Datei.
--Geräte -Druck -Geräte -ID -ID -Nummer, zu der jede Datei gehört.
------- Sortieroptionen -------
-v Sortieren Sie die Dateien alphanumerisch nach Version.
-T sortieren Dateien nach letzter Änderungszeit.
-c Sortieren Sie Dateien nach dem letzten Status ändern.
-Sie lassen die Dateien ungeortiert.
-r Die Reihenfolge der Art umkehren.
--Dirsfirst List-Verzeichnisse vor Dateien (-U deaktiviert).
--Sortieren X Sortieren Sie Sortieren: Name, Version, Größe, Mtime, CTime.
------- Grafikoptionen -------
-Ich drucke keine Eindringleitungen aus.
-Ein Druck -ANSI -Linien Grafikeindrückungslinien.
-S mit CP437 (Konsolen-) Grafikeindrückungslinien drucken.
-n Die Farbkolorisierung immer ausschalten (-C Overrides).
-C Färbung immer einschalten.
------- XML/HTML/JSON -Optionen -------
-X druckt eine XML -Darstellung des Baumes aus.
-J druckt eine JSON -Darstellung des Baumes aus.
-H Basehref druckt das HTML -Format mit Basehref als Top -Verzeichnis aus.
-T String Ersetzen Sie den Standard -HTML -Titel und den H1 -Header durch die Zeichenfolge.
--Nolinks schalten Hyperlinks in der HTML -Ausgabe aus.
------- Eingaboptionen -------
--Aus der Datei liest Pfade aus Dateien (.= stdin)
------- Verschiedene Optionen -------
--Versionsversion Version und Beenden.
--Helfen Sie beim Drucken der Nutzung und dieser Hilfsnachricht und Beenden.
-- Optionsverarbeitungsterminator.

Darüber hinaus können wir die Informationen des Baumbefehls im Detail erhalten, indem wir den Baumbefehl mit dem Schlüsselwort "Man" ausführen.

$ Tree Man

Beispiel Nr. 2: Verwenden des Baumbefehls in Bash.

Der Installationsprozess des Baumbefehls wird im obigen Abschnitt erreicht. Um den Baumbefehl in der Bash zu verwenden, müssen wir nur das Schlüsselwort „Baum“ in der Bash -Shell angeben. Der Befehl „Baum“ zeigt den Inhalt des angegebenen Verzeichnisses in einem Baumformat an. Hier haben wir einen Baumbefehl ohne Argument gegeben. Wenn der Baumbefehl ohne Argument ausgeführt wird, wurde die Baumstruktur aller Dateien und Verzeichnisse des aktuellen Pfades angezeigt. Das Bild zeigt die Dateien unseres Heimweges und die Verzeichnisse mit ihren Dateien in einer Baumstruktur an. Am Ende wurden die gesamten Verzeichnisse und Dateien in unserem Heimverzeichnis angezeigt.

$ tree
├── Linux1.PDF
├── Linux2.PDF
└── Linux3.PDF
0 Verzeichnisse, 3 Dateien

Die Ausgabe kann durch den Befehl Baum mit dem Schlüsselwort „weniger“ lesbarer gestaltet werden. Es ist praktisch, wenn Sie alle Dateien und Ordner in einem Verzeichnis auflisten möchten. Wir haben unten einen Baumbefehl gegeben, in dem wir das Slash -Symbol mit dem Schlüsselwort des Baumes verwenden, um die Dateien und Ordner im aktuellen Verzeichnis zu betrachten. Dann benutzten wir die Pipeline "|" Symbol, bei dem das Schlüsselwort "weniger" angegeben ist. In dem Bild können wir sehen, dass nur wenige Ordner und Dateien in Form einer baumartigen Struktur aufgeführt sind. Der Dickdarm „:“ befindet sich am Ende, das bei Presse weitere Ordner und Dateien des aktuellen Verzeichnisses angezeigt wird.

$ tree / | weniger
/
├── Bin -> usr/Bin
├── Kofferraum
│ ├── config-5.15.0-46-generisch
│ ├── config-5.15.0-56-generisch
│ ├── EFI [Fehler Öffnen von Dir]
│ ├º ─ muRb
│ │ ├── Schriftarten
│ │ │ └── Unicode.PF2
│ │ ├── GFXBlacklist.txt
│ │ ├ ├º ─ muRb.CFG
│ │ ├── Grubenv
│ │ ├── i386-pc
│ │ │ ├── 915Resolution.Mod
│ │ │ ├ ├── ACPI.Mod
│ │ │ ├── adler32.Mod
│ │ │ ├ ├º affs.Mod
│ │ │ ├ ├── AFS.Mod
│ │ │ ├ ├º ahci.Mod
│ │ │ ├ ├── All_video.Mod
│ │ │ ├ ├── Aout.Mod
│ │ │ ├ ├── Archelp.Mod
│ │ │ ├ ├── ATA.Mod
:

Der Befehl Bash -Baum kann auch verwendet werden, um den Prozessbaum anzuzeigen. Betrachten Sie den folgenden Befehl, in dem der „Proc“ den im aktuellen Verzeichnis ausgeführten Prozess darstellt. Wenn wir die Eingabetaste in den Baumbefehl drücken, erzeugt es den Baumprozess unseres Verzeichnisses in der Bash -Shell.

$ Tree /Proc
│ ├── Benutzer
│ │ ├── max_cgroup_namespaces
│ │ ├── max_fanotify_groups
│ │ ├── max_fanotify_marks
│ │ ├── max_inotify_instances
│ │ ├── max_inotify_watches
│ │ ├── max_ipc_namespaces
│ │ ├── max_mnt_namespaces
│ │ ├── max_net_namespaces
│ │ ├── max_pid_namespaces
│ │ ├── max_time_namespaces
│ │ ├ ├── max_user_namespaces
│ │ └── max_uts_namespaces
│ └── vm
│ ├── admin_reserve_kBytes
│ ├── Compaction_Proaktivität
│ ├── compact_memory
│ ├── compact_unevictable_allowed
│ ├── Dirty_background_Bytes
│ ├── Dirty_background_ratio
│ ├── Dirty_Bytes
│ ├── Dirty_expire_centisecs
│ ├── Dirty_ratio
│ ├── DirtyTime_expire_seconds
│ ├── Dirty_writeBack_centisecs
│ ├── Drop_caches
│ ├── extfrag_threshold
│ ├── Hugetlb_SHM_GROUP
│ ├── Laptop_Mode
│ ├── legacy_va_layout
│ ├── lowMem_reserve_ratio
│ ├── MAX_MAP_COUNT
│ ├── MEAMMEITE_FAILURE_EARLY_KILL
│ ├── MEAMMET_FAILURE_RECOVERY
│ ├── min_free_kBytes
│ ├── min_slab_ratio
│ ├── min_unmapping_ratio
│ ├── MMAP_MIN_ADDR
│ ├── mmap_rnd_bits
│ ├── mmap_rnd_compat_bits
│ ├── nr_hugepages
│ ├── nr_hugepages_mempolicy
│ ├── nr_overcommit_hugepages
│ ├── numa_stat
│ ├── numa_zonelist_order
│ ├── OOM_DUMP_TASKS
│ ├── oom_kill_allocating_task
│ ├── overcommit_kbytes
│ ├── overcommit_memory
│ ├── overcommit_ratio
│ ├── Page-Cluster
│ ├── page_lock_unfairness
│ ├── Panic_on_oom
│ ├── percpu_pagelist_high_fraction
│ ├── Stat_interval
│ ├── Stat_refresh
│ ├── Swappiness
│ ├── Unrivilegd_userfaultfd
│ ├── user_reserve_kbytes
│ ├── vfs_cache_pressure
│ ├── Watermark_boost_factor
│ ├── Watermark_Scale_Factor
│ └── ZONE_RECLAIM_MODE
├── SYSRQ-Trigger
├── sysvipc
│ ├── MSG
│ ├── Sem
│ └── shm
├── Thread -Selbst -> 5259/Task/5259
├── Timer_List
├── tty
│ ├── Treiber [Fehler Öffnen von Dir]
│ ├── Treiber
│ ├── LDISC
│ └── LDICS
├── Verfügungszeit
├── Version
├── Version_Ignature
├── vMallocinfo
├── vmstat
└── ZoneInfo
10618 Verzeichnisse, 169916 Dateien

Beispiel Nr. 3: Verwenden Sie den Baumbefehl mit unterschiedlichen Optionen in Bash.

Baumbefehlsoption "-a":

Der Befehl baum unterstützt verschiedene Optionen in Bash, die wir in diesem Abschnitt verwendet haben, um die Leistung der einzelnen Baumbefehlsoptionen in Bash zu demonstrieren. Erstens haben wir den Baumbefehl mit der Option "-a" bereitgestellt. Die Option "-a" hat alle Dateien des Verzeichnisses einschließlich der versteckten Dateien abgerufen, die im Bild der Bash-Shell angezeigt werden können.

Baum -a
-abschalten.JSONLZ4
│ │ ├ ├── Sitzungsstaat.JSON
│ │ └ └── den Zustand.JSON
│ ├── DirectoryTree.JSON
│ ├── verschlüsseltes OpenPGP-PASPHRASE.txt
│ ├── Erweiterungspräferenzen.JSON
│ ├── Erweiterungen.JSON
│ ├── Favicons.sqlite
│ ├── Formhistorie.sqlite
│ ├── Global-Messages-DB.sqlite
│ ├── Geschichte.sqlite
│ ├── Key4.db
│ ├── Lock -> 127.0.1.1: +2021
│ ├── Mailviews.dat
│ ├── Minidumps
│ ├── OpenPGP.sqlite
│ ├ ├── .Parentlock
│ ├── Berechtigungen.sqlite
│ ├── PKCS11.txt
│ ├── Orte.sqlite
│ ├── Präfs.JS
│ ├── gespeicherte Telemetrie-Pings

│ ├── Suche.JSON.Mozlz4
│ ├── Security_State
│ ├── SessionCheckpoints.JSON
│ ├── Einstellungen
│ │ └ └── Daten.sicher.Behälter
│ ├── SiteSecurityServicestate.txt
│ ├── Lagerung
│ │ ├ ├── Standardeinstellung
│ │ ├── LS-Archiv.sqlite
│ │ ├── dauerhaft
│ │ │ └ └── Chrom
│ │ │ ├ ├── IDB
│ │ │ │ ├── 3870112724rsegmnoittet-es.Dateien
│ │ │ │ └── 3870112724rsegmnoittet-es.sqlite
│ │ │ └ └── .Metadata-V2
│ │ └── vorübergehend
│ ├── Lagerung.sqlite
│ ├── mal.JSON
│ └── Xulstore.JSON
├── .VboxClient-Clipboard.PID
├── .VboxClient-Display-SVGA-X11.PID
├── .VBOXCLIENT-DRAGANDDROP.PID
├── .VBOXCLIENT SEAMLESS.PID
└── .WGet-HSTs
1262 Verzeichnisse, 10126 Dateien

Hier haben wir den Befehl Bash-Baum mit der Option "-a" erneut verwendet, um die Baumhierarchie des angegebenen Verzeichnisses "Snap" in der Bash-Shell anzuzeigen. Das SNAP -Verzeichnis zeigte alle Dateien im Baumformat im Screenshot unten an.

Baum -a ./Snap
-A [Fehleröffnung von Dir öffnen]
./snap [Fehler öffnen
0 Verzeichnisse, 0 Dateien

Baumbefehlsoption "-f": Die Verwendung des Flags -f -Flags mit dem Befehl baum besteht darin, die Daten des Verzeichnisses zusammen mit dem gesamten Pfadpräfix für jedes Unterverzeichnis und die Datei aufzulisten. Hier haben wir den Baumbefehl mit der Flag „-F“ im Berechtigung des Sudo verwendet, der nach der Erlaubnis zur Root-Zugriff des protokollierten Benutzers fragt. Der vollständige Pfad der Dateien und der Unterverzeichnisse kann im angegebenen Bash -Schalenbild visualisiert werden.

$ sudo tree -f
[sudo] Passwort für Linux:
.
├── ./Bash Tree -Befehl.docx
├── ./Linux1.PDF
├── ./Linux2.PDF
└── ./Linux3.PDF
0 Verzeichnisse, 4 Dateien

Baumbefehlsoption "-s": Als nächstes wird der Baumbefehl mit der Option "-s" verwendet. Mit der Option "-S" können wir nicht nur die Namen der Dateien, sondern auch deren Größen in Bytes drucken. Im folgenden Befehl des Baumes wird das Flag „-F“ zuerst hinzugefügt, um die Hierarchie der Dateien und Verzeichnisse zusammen mit dem Pfad zu nehmen. Anschließend wird das Flag „-s“ verwendet, um die Größe dieser Baumdateien und Unterverzeichnisse anzugeben.

$ tree -f -s
-f [Fehleröffnung von Dir]
0 Verzeichnisse, 0 Dateien

Baumbefehlsoption "-df": Mit der Option „D“ können der Baumbefehl die Baumhierarchie von Unterverzeichnissen ohne die Dateinamen generieren. Wir haben den Baumbefehl erstellt, bei dem die Option "-d" und "-f" kombiniert wird, um die Unterverzeichnisse mit dem vollständigen Pfad abzurufen.

$ sudo tree -df
0 Verzeichnisse

Baumbefehlsoption "-l": Mit der Option „Baumbefehl" -L "können wir die maximale Anzahl von Ordnern angeben, die durch den Befehl Baum abgerufen werden. Die Tiefe einschränken ist von Vorteil, wenn wir nur die besten Phasen extrem tiefer Ordnerstrukturen erkunden müssen. Im folgenden Befehl bash tree wird die Option "-l" mit der Nummer "3" angegeben, die anzeigt, dass drei Dateien oder Unterverzeichnisse nur in der Baumhierarchie angezeigt werden können.

$ tree -l 3
-L [Fehleröffnung von Dir.]
3 [Fehler Öffnen von DIR]

Abschluss

Der Befehl bash tree hilft herauszufinden, wie die Dateien in unserem System organisiert sind. Wir haben zuerst den Baumbefehl in der Bash -Shell installiert und dann ein kurzes Detail über den Befehl mit dem Mann und der Hilfe erhalten. Der Baumbefehl von Bash hat verschiedene Optionen, aus denen nur wenige in Bash implementiert werden, um die Funktionalität dieser Optionen zu untersuchen.