Martes, Mayo 23, 2017

Visualizar una jerarquía de directorios desde línea de comandos

Tux-comando-terminal-consola-linux

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

Compártelo. ¡Gracias!

 
Grupo Digital de Ayuda! Laboratorio Linux! - Linux para todos.

¿Quién está en línea?

Hay 67 invitados y ningún miembro en línea

Contador de Visitas

8827645
Hoy Hoy 262
Ayer Ayer 1061
Esta semana Esta semana 1323
Este mes Este mes 21453
Total de Visitas Total de Visitas 8827645

Día con más
visitantes

04-24-2017 : 1114

Gracias por su visita