tree
El comando tree es una utilidad de línea de comandos en sistemas operativos tipo Unix y Windows que permite visualizar la estructura de directorios y archivos de forma gráfica en forma de árbol jerárquico.
| Categoría | Sistema y navegación de archivos |
|---|---|
| Disponible en | Linux, macOS, UNIX-like y Windows (mediante instalación o nativo según versión) |
| Equivalente en Windows | tree (nativo en CMD) o Get-ChildItem -Recurse (en PowerShell) |
| Sustituye a | Ejecuciones repetitivas y manuales del comando ls -R para entender la organización de un proyecto. |
| ¿Requiere permisos de administrador? | No, salvo que se intente explorar directorios protegidos del sistema donde no se tengan permisos de lectura. |
¿Qué significa su nombre?
El nombre TREE proviene de la palabra en inglés para "árbol". Su denominación describe de forma completamente literal la representación visual que genera en la terminal, mostrando las carpetas y ficheros ramificados como las ramas de un árbol invertido.
Es ampliamente utilizado por desarrolladores y administradores para documentar la estructura de directorios de repositorios o explicar distribuciones de archivos en manuales técnicos.
¿Para qué sirve?
El comando tree sirve principalmente para listar el contenido de un directorio de manera recursiva imprimiendo una sangría estructurada con líneas verticales y horizontales. Facilita enormemente la comprensión rápida de la jerarquía de carpetas sin necesidad de navegar manualmente nivel por nivel.
También permite filtrar resultados por patrones específicos, mostrar u ocultar archivos ocultos, e incluso exportar la estructura a formatos de texto plano o HTML para documentación.
Sintaxis
tree [opciones] [directorio]
Las opciones o modificadores más habituales son:
| Opción | Descripción |
|---|---|
-a |
Muestra todos los archivos, incluidos los ocultos (que empiezan por punto .). |
-d |
Muestra únicamente los directorios (carpetas), omitiendo los archivos. |
-L [nivel] |
Limita la profundidad máxima de recursividad del árbol a mostrar. |
-f |
Muestra la ruta completa (path) prefijada para cada archivo o carpeta. |
Comandos más utilizados
| Comando | Descripción |
|---|---|
tree |
Muestra la estructura de directorios del directorio actual hacia abajo. |
tree -L 2 |
Muestra el árbol de directorios limitado a una profundidad máxima de 2 niveles. |
tree -d |
Lista exclusivamente la estructura de carpetas, ignorando los ficheros. |
Equivalencia con otros sistemas
| Acción | Linux (Bash) | Windows (CMD) | Windows (PowerShell) |
|---|---|---|---|
| Ver árbol de directorios | tree |
tree |
Get-ChildItem -Recurse (o funciones personalizadas) |
| Ver carpetas y archivos con ruta | tree -f |
tree /F |
Get-ChildItem -Recurse -Name |
Ejemplos
Mostrar el árbol del directorio actual
tree
Listar solo directorios hasta una profundidad de 2 niveles
tree -d -L 2
Incluir archivos ocultos en la visualización
tree -a
Ejemplo de salida
santi@SantiPC ~/Proyecto> tree
.
├── index.html
├── css
│ └── style.css
└── js
└── app.js
2 directories, 3 files
¿Cómo interpretar la salida?
tree, se imprime la ruta raíz actual en la parte superior y se despliegan líneas con ramificaciones gráficas (├── y └──) conectando carpetas y ficheros. Al final del listado, muestra un resumen indicando el recuento total de directorios y archivos encontrados.Errores habituales
- Intentar ejecutar el comando en distribuciones ligeras de Linux donde
treeno viene pre instalado por defecto (requiriendo instalarlo mediante gestores de paquetes comosudo apt install tree). - Aplicar un nivel de profundidad excesivo (
-Lmuy alto) en directorios gigantescos (como la raíz del sistema/), lo que satura la pantalla con miles de líneas de texto innecesarias.
Conceptos relacionados
- Estructura de directorios en árbol
- Recursividad
- Rutas relativas y absolutas
- Sistemas de ficheros jerárquicos
Comandos relacionados
lsfinddumkdircd
Curiosidades
Aunque en muchos sistemas Linux modernos el comando tree no forma parte de los paquetes básicos esenciales del núcleo (Coreutils) y debe instalarse de forma independiente, se ha convertido en una herramienta estándar imprescindible en casi cualquier entorno de desarrollo debido a la claridad visual insuperable que aporta frente a los listados lineales tradicionales.
Prácticas propuestas
- Abre tu terminal y ejecuta
treedentro de un directorio de trabajo para observar la disposición de tus carpetas. - Utiliza la opción
-L 1para comprobar cómo se restringe la vista exclusivamente al primer nivel de carpetas del directorio actual. - Ejecuta
tree -apara descubrir si tienes archivos o configuraciones ocultas (que comiencen por punto) en tu directorio personal. - Combina las opciones
-dy-fpara obtener un listado exclusivamente de rutas de carpetas de tu proyecto. - Instala el comando
treeen tu distribución de Linux si no lo tienes (usandosudo apt install treeo equivalente) y comprueba su ayuda conman tree.
Consejo: Utiliza tree cuando necesites capturar la estructura de un proyecto para adjuntarla en la documentación o memoria de un trabajo de clase.
Preguntas de reflexión:
- ¿Qué ventaja visual aporta el comando
treefrente a un listado convencional conls? - ¿Para qué sirve exactamente el parámetro numérico que acompaña a la opción
-L? - ¿Por qué el comando
treeno muestra por defecto los archivos que empiezan con un punto (archivos ocultos)? - ¿Qué diferencia hay en la salida al utilizar la opción
-den comparación con la ejecución estándar? - ¿Cómo maneja el comando
treelos permisos denegados cuando encuentra una carpeta inaccesible durante su recorrido? - ¿Qué alternativa nativa ofrece el sistema operativo Windows en su consola CMD para realizar una función similar?
Haz clic aquí para ver las soluciones y explicaciones
1. ¿Qué ventaja visual aporta el comando tree frente a un listado convencional con ls?
Aporta una representación gráfica estructurada en forma de jerarquía o árbol que permite entender de un solo vistazo las relaciones de dependencia y anidamiento entre directorios y subdirectorios, algo mucho más complejo de deducir con un listado plano de ls.
2. ¿Para qué sirve exactamente el parámetro numérico que acompaña a la opción -L?
Sirve para limitar la profundidad máxima (el número de niveles de subcarpetas hacia abajo) que recorrerá el comando a la hora de mostrar la estructura, evitando que se impriman árboles kilométricos en proyectos muy anidados.
3. ¿Por qué el comando tree no muestra por defecto los archivos que empiezan con un punto (archivos ocultos)?
Siguiendo la convención estándar en sistemas Unix, los archivos y carpetas cuyo nombre comienza por un punto se consideran elementos de configuración del sistema o del usuario y se ocultan por defecto para evitar saturar la vista con información que no suele requerirse en el uso cotidiano.
4. ¿Qué diferencia hay en la salida al utilizar la opción -d en comparación con la ejecución estándar?
La opción -d filtra el resultado para mostrar exclusivamente los directorios (carpetas), omitiendo por completo los archivos individuales contenidos en ellos, lo cual reduce drásticamente el volumen de información mostrada.
5. ¿Cómo maneja el comando tree los permisos denegados cuando encuentra una carpeta inaccesible durante su recorrido?
El comando continúa escrutando el resto del árbol accesible, pero imprime un mensaje de aviso específico en pantalla indicando que el acceso a dicha carpeta concreta ha sido denegado por falta de privilegios.
6. ¿Qué alternativa nativa ofrece el sistema operativo Windows en su consola CMD para realizar una función similar?
Windows incluye de forma nativa el comando tree en su intérprete de comandos CMD, el cual cumple una función homóloga de representación gráfica de directorios, pudiendo complementarse con modificadores como /F para mostrar archivos o /A para usar caracteres ASCII estándar.