Esistono diversi script per convertire un elenco di nomi di percorso in forma di albero:
- il mio treeify.pl
- treeify.rs di Loïc Damien
- treeify.py di Hakril
Tutti questi script funzionano con tar -tf …
produzione; ad esempio:
$ tar -tf foo.tar | treeify foo ├─bar │ ├─myfile.txt │ └─yourfile.txt └─baz └─qux └─hisfile.txt
Inoltre:
$ bsdtar -tf foo.zip | treeify
$ find /dir -size +5 | treeify
$ git ls-files | treeify
$ pacman -Qql foopkg | treeify
$ unrar vb foo.rar | treeify
$ zipinfo -1 foo.zip | treeify
$ gsettings list-schemas | treeify -s. -f
$ qdbus | sed -n "s/^ //p" | treeify -s. -f
$ ldns-walk netbsd.org | awk '{print $1}' | treeify -s. -f -R
Questo è solo un addendum alla risposta di user1686 anche se non ho abbastanza reputazione per commentare. Sebbene i suoi script facciano sicuramente bene il lavoro, devono essere scaricati mentre tree
può effettivamente farlo in modo nativo:
$ tar tf foo.tar | tree --fromfile .
.
└── foo
├── bar
│ ├── myfile.txt
│ └── yourfile.txt
└── baz
└── qux
└── hisfile.txt
4 directories, 3 files
Nota che a differenza della maggior parte degli strumenti tree
utilizza un punto .
e non un trattino -
per leggere l'input da stdin:
INPUT OPTIONS
--fromfile
Reads a directory listing from a file rather than the file-system.
Paths provided on the command line are files to read from rather than directories to search.
The dot (.) directory indicates that tree should read paths from standard input.
Ciò consente di utilizzare le tipiche funzioni ad albero come i caratteri jolly sebbene le dimensioni ovviamente non possano essere visualizzate e l'argomento del livello (-L
) apparentemente anche non funziona...