Mostrar directorios en forma de árbol con el comando tree en Linux
Hoy vamos a hablar de un comando que no está incluido por defecto en las distros que he probado, pero que muchas veces vale la pena instalar porque nos muestra de una forma más gráfica la estructura de los directorios. Estamos hablando del comando tree
, que estoy seguro que a los usuarios con más experiencia ya les suena de usarlo en quellos maravillosos años de MS-DOS.
¿Qué es el comando tree y para qué sirve?
El comando tree nos permite listar de forma recursiva los directorios generando una lista en forma de árbol. Esta lista en árbol además contiene sangrados y colores que permiten visualizar de una forma más intuitiva la estructura del directorio.
Cuando tenemos que trabajar con estructuras de directorios complejas, el comando tree
nos puede ser de gran ayuda al poder visualizar todas las jerarquías en pantalla.
¿Cómo instalar tree?
Si la distro no incluye tree por defecto, como pasa con Ubuntu, podemos instalarla con sudo apt-get install tree
y si estamos en CentOS empleamos el comando yum install tree
.
Una vez instalado podremos acceder al manual de usuario con el comando man tree
, el cual recomiendo utilizar siempre que nos surja alguna duda.
Comentar que algunas veces el comando tree
no me mostraba los diferentes colores, pero esto era debido a que la variable de entorno LS_COLORS
no estaba configurada. Pocas veces me ha sucedido esto, pero lo dejo por si a alguien le pasa que sepa como solucionarlo.
¿Cómo usar el comando tree?
Como es obvio, el comando lo usaremos a través de la terminal y si lo ejecutamos sin ningún argumento, tree
listará los contenidos del directorio actual. Como tree
dispone de una gran flexibilidad, mostraré algunos ejemplos de uso para dar a conocer sus posibilidades.
Ejemplos de uso del comando tree:
- Con el comando
tree -d
se listan sólo los directorios, ignorando por completo los archivos de cualquier extensión. - Con
tree -a
se hace una lista de todos los archivos incluidos los archivos ocultos. - Si usamos
tree -ugh
se muestra el dueño (u
), el grupo (g
) y el tamaño del archivo (h
). - Con
tree -H ./ -o arbol.html -T "Titulo h1 del documento HTML"
exportamos a un archivo HTML el árbol y además le añadimos un título. - Con
tree -P *.js
estaríamos usando el patrón*.js
que nos muestra sólo archivos javascript con la extensión.js
. Para conseguir el efecto contrario, es decir, listar todos los archivos excepto los que tienen la extensión.js
, usaríamos el comandotree -I *.js
.