Viernes, Agosto 18, 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 54 invitados y ningún miembro en línea

Contador de Visitas

8926427
Hoy Hoy 804
Ayer Ayer 1107
Esta semana Esta semana 4763
Este mes Este mes 18613
Total de Visitas Total de Visitas 8926427

Día con más
visitantes

07-19-2017 : 1525

Gracias por su visita