Existuje několik skriptů pro převod seznamu názvů cest do stromové podoby:
- můj vlastní treeify.pl
- treeify.rs od Loïca Damiena
- treeify.py od Hakrila
Všechny tyto skripty pracují s tar -tf …
výstup; například:
$ tar -tf foo.tar | treeify foo ├─bar │ ├─myfile.txt │ └─yourfile.txt └─baz └─qux └─hisfile.txt
Také:
$ 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
Toto je jen dodatek k odpovědi uživatele 1686, i když nemám dostatečnou reputaci, abych se vyjádřil. I když jeho skripty určitě dělají svou práci dobře, je třeba je stáhnout do tree
může to vlastně udělat nativně:
$ tar tf foo.tar | tree --fromfile .
.
└── foo
├── bar
│ ├── myfile.txt
│ └── yourfile.txt
└── baz
└── qux
└── hisfile.txt
4 directories, 3 files
Všimněte si, že na rozdíl od většiny nástrojů tree
používá tečku .
a ne pomlčku -
pro čtení vstupu z 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.
To umožňuje používat typické stromové funkce, jako jsou zástupné znaky, ačkoli velikosti zjevně nelze zobrazit a argument úrovně (-L
) zřejmě také nefunguje...