Este artículo explica el uso de la herramienta tree
para listar el contenido de un directorio en un formato de tipo árbol.
En sistemas operativos GNU/Linux y FreeBSD existe una herramienta similar a pstree
, pero para visualizar jerarquías de directorios desde línea de comandos. Para quienes tampoco conozcan pstree
, esta herramienta se utiliza para visualizar un árbol de procesos (según la jerarquía definida por la relación padre/hijo):
root@debian7:~# pstree init???acpid ??atd ??atop ??beremote???4*[{beremote}] ??cron ??6*[getty] ??ntpd ??postgres???6*[postgres] ??rpc.idmapd ??rpc.statd ??rpcbind ??rsyslogd???3*[{rsyslogd}] ??sshd???sshd???sshd???sudo???su???bash???pstree ??udevd???2*[udevd] ??vmtoolsd???{vmtoolsd}
tree
utiliza la misma representación gráfica, pero para visualizar directorios.
Para instalar tree
en Debian y derivados, ejecutar:
# apt-get install tree
Para instalar tree
en FreeBSD, ejecutar:
# pkg install tree
Por defecto, tree
genera un árbol con todos los archivos y subdirectorios a partir de un directorio pasado como parámetro (o el directorio actual, si no se especifica ninguno), de manera recursiva:
root@linuxito:~# tree /usr/local/share/ | head -n 30 /usr/local/share/ |-- applications | |-- zenmap-root.desktop | `-- zenmap.desktop |-- ca-certificates |-- man | |-- de | | `-- man1 | | `-- nmap.1 | |-- es | | `-- man1 | | `-- nmap.1 | |-- fr | | `-- man1 | | `-- nmap.1 | |-- hr | | `-- man1 | | `-- nmap.1 | |-- hu | | `-- man1 | | `-- nmap.1 | |-- it | | `-- man1 | | `-- nmap.1 | |-- ja | | `-- man1 | | `-- nmap.1 | |-- man1 | | |-- ncat.1 | | |-- ndiff.1
Si se desean visualizar sólo los directorios se debe utilizar la opción -d
:
root@linuxito:~# tree -d /usr/local/share/ | head -n 30 /usr/local/share/ |-- applications |-- ca-certificates |-- man | |-- de | | `-- man1 | |-- es | | `-- man1 | |-- fr | | `-- man1 | |-- hr | | `-- man1 | |-- hu | | `-- man1 | |-- it | | `-- man1 | |-- ja | | `-- man1 | |-- man1 | |-- pl | | `-- man1 | |-- pt_BR | | `-- man1 | |-- pt_PT | | `-- man1 | |-- ro | | `-- man1 | |-- ru | | `-- man1 | |-- sk
También es posible limitar la cantidad de niveles a descender a través de la opción -L
:
root@linuxito:~# tree -d -L 2 /usr/local/share/ | head -n 30 /usr/local/share/ |-- applications |-- ca-certificates |-- man | |-- de | |-- es | |-- fr | |-- hr | |-- hu | |-- it | |-- ja | |-- man1 | |-- pl | |-- pt_BR | |-- pt_PT | |-- ro | |-- ru | |-- sk | `-- zh |-- ncat |-- nmap | |-- nselib | `-- scripts |-- sgml | |-- declaration | |-- dtd | |-- entities | |-- misc | `-- stylesheet |-- xml
Si se requiere obtener la ruta completa de cada archivo, recurrir a la opción -f
:
root@linuxito:~# tree -f -d -L 2 /usr/local/share/ | head -n 30 /usr/local/share |-- /usr/local/share/applications |-- /usr/local/share/ca-certificates |-- /usr/local/share/man | |-- /usr/local/share/man/de | |-- /usr/local/share/man/es | |-- /usr/local/share/man/fr | |-- /usr/local/share/man/hr | |-- /usr/local/share/man/hu | |-- /usr/local/share/man/it | |-- /usr/local/share/man/ja | |-- /usr/local/share/man/man1 | |-- /usr/local/share/man/pl | |-- /usr/local/share/man/pt_BR | |-- /usr/local/share/man/pt_PT | |-- /usr/local/share/man/ro | |-- /usr/local/share/man/ru | |-- /usr/local/share/man/sk | `-- /usr/local/share/man/zh |-- /usr/local/share/ncat |-- /usr/local/share/nmap | |-- /usr/local/share/nmap/nselib | `-- /usr/local/share/nmap/scripts |-- /usr/local/share/sgml | |-- /usr/local/share/sgml/declaration | |-- /usr/local/share/sgml/dtd | |-- /usr/local/share/sgml/entities | |-- /usr/local/share/sgml/misc | `-- /usr/local/share/sgml/stylesheet |-- /usr/local/share/xml
Para más información:
$ man tree
Fuente: linuxito