Verzeichnisbaum für übereinstimmende Verzeichnisnamen anzeigen

279
w1kl4s

Ich weiß, das treeerlaubt Mustervergleiche, aber das funktioniert nur für Dateien in Verzeichnissen. Nehmen wir an, ich habe eine Ordnerstruktur, die so aussieht:

➜ test tree . ├── testdir1 │   ├── file1 │   └── file2 ├── testdir2 │   ├── file1 │   └── file2 ├── testdir3 │   ├── file1 │   └── file2 ├── testdir4 │   ├── file1 │   └── file2 ├── testdir5 │   ├── file1 │   └── file2 ├── thatdir │   ├── file1 │   └── file2 └── thatdir2 ├── file1 └── file2 

Und ich möchte, dass tree nur den Inhalt von Ordnern anzeigt, die mit dem that im Baum angezeigten beginnen . Ich habe ein Bootleg-Zsh-Skript zusammengestellt, das das tut, was ich brauchte:

for i in that*; tree $i;

Ausgabe:

➜ test for i in that*; tree $i; thatdir ├── file1 └── file2  0 directories, 2 files thatdir2 ├── file1 └── file2 

Ich habe mich jedoch gefragt, ob es einen besseren Weg gibt, dies zu tun, anstatt ein Skript unbesonnen über etwas zu legen, anstatt das Werkzeug ordnungsgemäß zu verwenden (auch die Formatierung ist ein bisschen kaputt, da der Befehl mehrmals ausgeführt wird.)

0

1 Antwort auf die Frage

1
maoizm

tree that* sollte tun was du willst und ist einfacher

Ehrlich gesagt bin ich ein Idiot w1kl4s vor 5 Jahren 2
@ w1kl4s) Nein, wir sagen eher "weniger erfahrene Benutzer" gemäß den lokalen Verhaltensstandards. Ehrlich gesagt gibt es viele Bereiche, in denen ich mich genauso fühle maoizm vor 5 Jahren 0
"Misserfolg ist der Schlüssel zum Erfolg; jeder Fehler bringt uns etwas bei." - sagte jemand zu einem bestimmten Zeitpunkt ... spikey_richie vor 5 Jahren 1