Gibt es einen Linux-Befehl, den ich von einem Bash-Skript aus aufrufen kann, das die Verzeichnisstruktur in Form eines Baums druckt, z.
folder1
a.txt
b.txt
folder2
folder3
linux
command-line
user243655
quelle
quelle
find
. Oderfind . -not -path '*/\.*'
um Dateien und Ordner auszublenden, die mit beginnen.
. Wenn Sie eine Ausgabe mit Leerzeichen haben möchten, wie in der Frage, verwenden Sie diese mit diesem Skript "Prettifier suchen":find . -not -path '*/\.*' | python -c "import sys as s;s.a=[];[setattr(s,'a',list(filter(lambda p: c.startswith(p+'/'),s.a)))or (s.stdout.write(' '*len(s.a)+c[len(s.a[-1])+1 if s.a else 0:])or True) and s.a.append(c[:-1]) for c in s.stdin]"
Antworten:
Ist es das, was du für einen Baum suchst ? Es sollte in den meisten Distributionen enthalten sein (möglicherweise als optionale Installation).
Beispiel von der Webseite des Betreuers.
Sie können die Option hinzufügen ,
-L #
wo#
durch eine Zahl ersetzt wird, die maximale Rekursionstiefe zu spezifizieren.Entfernen
-d
, um auch Dateien anzuzeigen.quelle
-d
, um auch Dateien anzuzeigen!brew install tree
apt-cyg install tree
(vorausgesetzt, Sie haben apt-cyg installiert)apt-get install tree
wird es installieren.Sie können dieses verwenden:
In wenigen Sekunden wird eine grafische Darstellung der aktuellen Unterverzeichnisse ohne Dateien angezeigt , z. B /var/cache/.:
Quelle
quelle
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\// /g' -e 's/^/ /'
.git
?find . | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/"
Versuchen Sie Folgendes, um Hassous Lösung zu Ihrem .bashrc hinzuzufügen:
quelle
alias lst='ls -R | grep ":$" | sed -e '"'"'s/:$//'"'"' -e '"'"'s/[^-][^\/]*\//--/g'"'"' -e '"'"'s/^/ /'"'"' -e '"'"'s/-/|/'"'"''
Mit diesem Befehl werden sowohl Ordner als auch Dateien angezeigt .
Beispielausgabe:
Quelle: Kommentar von @javasheriff hier . Es wird als Kommentar eingetaucht und als Antwort veröffentlicht, sodass Benutzer es leicht erkennen können.
quelle
find . |grep -vE 'pyc|swp|__init' | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/"
gutIch verschönere die Ausgabe von @ Hassous Antwort mit:
Dies ist der Ausgabe von
tree
jetzt sehr ähnlich :Sie können auch einen Alias daraus machen:
Übrigens
tree
ist in einigen Umgebungen wie MinGW nicht verfügbar. Die Alternative ist also hilfreich.quelle
Sie können auch die Kombination der Befehle find und awk verwenden, um den Verzeichnisbaum zu drucken. Weitere Informationen finden Sie unter " Drucken einer mehrstufigen Baumverzeichnisstruktur mit den kombinierten Linux-Befehlen find und awk ".
quelle