Jueves, Junio 29, 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 43 invitados y ningún miembro en línea

Contador de Visitas

8869543
Hoy Hoy 489
Ayer Ayer 1284
Esta semana Esta semana 4546
Este mes Este mes 32654
Total de Visitas Total de Visitas 8869543

Día con más
visitantes

06-26-2017 : 1438

Gracias por su visita