El comando tree, muestra un listado de los archivos de la ruta actual de manera recursiva, en forma de diagrama de árbol

El comando tree
fue escrito por Steve Baker junto con otros desarrolladores para sistemas PC-DOS y MS-DOS, pero está disponible para sistemas GNU/Linux bajo una licencia GPL v2.0
El comando, ejecutado sin argumentos, muestra los archivos y carpetas de la carpeta actual de manera recursiva, es decir entrando dentro de carpetas y volviendo a mostrar el contenido, etc…
Si instalas esta utilidad en tu sistema GNU/Linux y la ejecutas, te mostrará un resultado similar a este:
$ tree ruta/de/una/carpeta
ruta/de/una/carpeta/
├── a-primero.html
├── b-segundo.html
├── subcarpeta
│ ├── readme.html
│ ├── code.cpp
│ └── code.h
└── z-otro-archivo.html
1 directories, 6 files
Pero tiene un montón de opciones, veamos algunas de las que nos pueden ser más útiles, pero explora todas para que te pueda ayudar en un caso en concreto.
Niveles de recursividad
Si ejecutamos el comando en la carpeta /home
de nuestro usuario, quizás mostrará una salida abrumadora de información que realmente no es lo que estábamos buscando.
Podemos limitar el nivel de recursividad al que profundiza al mostrar la información mediante la opción-L
y añadiendo un número que será el número de niveles de recursividad que muestra.
Estando en la carpeta /home
de tu usuario ejecuta primero tree
sin más opciones y ahora ejecuta tree -L 1
para que muestre solo un nivel de recursividad al ejecutar el comando. ¿Ves la diferencia? Puedes probar cambiando el 1 por otro número para explorar más niveles.
Los directorios primero
Algo que me gusta tanto del comando tree como de otros comandos a la hora de mostrar el contenido de mi ubicación es que me muestre primero los directorios y después los archivos, ambos ordenados alfabéticamente.
En tree podemos hacer eso con la opción --dirsfirst
Añadiendo esta opción a la anterior, podemos ejecutar el comando tree --dirsfirst -L1
Pero si a ti no te gusta esta distribución y prefieres que primero te muestre los archivos, para eso tienes la opción --filesfirst
Mostrando colores
Colorear la salida de un comando sirve para ordenar un poco la información en nuestra pantalla y que nos sea más fácil agrupar e interpretar la información. Con el comando tree podremos hacerlo con la opción -C. Añadimos esta opción a lo ya aprendido tree --dirsfirst -CL 1
Mostrar las carpetas y archivos ocultos
De manera predeterminada, tree
no nos muestra las carpetas ni archivos ocultos, ya sabes, en GNU/Linux son los que empieza su nombre con un punto .
Si queremos que también nos muestre esas carpetas y archivos ocultos, podemos hacerlo mediante la opción -a
Vamos a añadir esa opción al comando: tree --dirsfirst -aCL 1
Ordenar la salida del comando
De manera predeterminada tree muestra el contenido ordenado de manera alfabética, cosa que podemos invertir con la opción -r
Y también podemos hacer que el comando tree nos muestre el tamaño de los archivos y carpetas mediante la opción -h
Pero podemos especificar que lo ordene por ejemplo de por tamaño mediante la opción --sort size
que podemos añadir a nuestro comando: tree --dirsfirst -ahCL 1 --sort size
Mostrando un patrón de archivos
De toda la información que ofrece tree, la podemos filtrar buscando un patrón específico de un nombre de archivo.
El comando mostrará igualmente todos las carpetas, pero dentro de esta sólo mostrará los archivos que coinciden con el patrón buscado. El patrón de búsqueda admite comodines como:
- * para todos los caracteres
- ? para un único caracter
- [A-Z] Para caracteres entre los especificados
Para ver todos los archivos en dos niveles, que comienzan por b o por w y acaben en .sh ejecutaríamos el siguiente comando de tree con estas opciones tree --filesfirst --prune -CL 2 -P [b,w]*.sh
Añado la opción prune
para que no muestre los directorios que no contienen ninguna de las opciones de búsqueda, así muestra solo las carpetas que los contienen.
Conclusión
El comando tree
tiene muchas más opciones que podemos configurar, echa un vistazo a su ayuda para verlas todas.
Una de las opciones que más me gustan es que al final del comando, hace un resumen de las perpetas y los archivos encontrados. Esa información me gustaría que se mostrara en el comando exa o en ls a la hora de listar el contenido de una carpeta.
Bueno, eso queda para un próximo artículo en el blog… Conjugaremos ambos comandos para que se muestre ese resumen final de tree
¿Te ha resultado útil el artículo? Comparte tus «hacks» con el comando tree o si alguno que no conocías te ha resultado interesante, en los comentarios del blog.

Para poner colores lo primero que se me ha ocurrido es el lolcat. XD
krovikan@linux:~/Descargas> tree ./ –dirsfirst -L 1 | lolcat
./
├── Dragon Quest
├── El Bueno, el Feo y el Malo Antiguo
├── Benny Hill.mp3
├── Manual Samsung TV.pdf
├── Neofetch.png
├── openSUSE-Leap-15.4-KDE-Live-x86_64-Build7.52-Media.iso
├── So I Tried Elden Ring.mp4
└── Transferencia claraboya.pdf
2 directories, 6 files
No se ve como fish como tengo recién instalado from scratch (home y usuario borrado incluso, salvo una copia de seguridad para lo que me haga falta). Estoy reconfigurando todo (excepto firefox) y aun me queda.
Saludos
Bueno, lolcat colorea todo de muchos colores. Lo mejor es que coloree de manera que sea más fácil organizar y encontrar lo que se busca…
Bueno, pues a seguir reconfigurando cosas!! 🙂
Gracias por estar siempre atento a comentar a los artículos!! 🙂
Saludos.