Existen varios scripts para convertir una lista de nombres de rutas en forma de árbol:
- mi propio treeify.pl
- treeify.rs por Loïc Damien
- treeify.py por Hakril
Todos estos scripts funcionan con tar -tf …
producción; por ejemplo:
$ tar -tf foo.tar | treeify foo ├─bar │ ├─myfile.txt │ └─yourfile.txt └─baz └─qux └─hisfile.txt
También:
$ 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
Esto es solo una adición a la respuesta del usuario 1686, aunque no tengo suficiente reputación para comentar. Si bien sus guiones ciertamente funcionan bien, deben descargarse mientras tree
en realidad puede hacer esto de forma nativa:
$ tar tf foo.tar | tree --fromfile .
.
└── foo
├── bar
│ ├── myfile.txt
│ └── yourfile.txt
└── baz
└── qux
└── hisfile.txt
4 directories, 3 files
Tenga en cuenta que, a diferencia de la mayoría de las herramientas, tree
usa un punto .
y no un guión -
para leer la entrada desde 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.
Esto permite usar las funciones de árbol típicas como comodines, aunque los tamaños obviamente no se pueden mostrar y el argumento de nivel (-L
) aparentemente tampoco funciona...