tree în Linux / Bash

Navigare și fișiere tree 1.x (pachetul tree)

Afișează conținutul unui director sub formă de arbore, cu subdirectoarele și fișierele lor.

Sintaxă comandă
tree [opțiuni] [director]

Ce face tree

Comanda tree parcurge un director și desenează structura lui ca un arbore, cu linii care arată ce fișier se află în ce subdirector. La final scrie câte directoare și câte fișiere a găsit. Este utilă pentru a înțelege rapid un proiect nou sau pentru a pune structura unui proiect într-o documentație.

Implicit tree coboară în toate subdirectoarele și nu arată fișierele ascunse. Pe proiecte mari limitezi adâncimea cu -L și excluzi directoarele grele (node_modules, vendor, .git) cu -I. Comanda nu este instalată implicit pe multe distribuții: se instalează cu pachetul tree (sudo apt install tree, sudo dnf install tree).

Opțiuni și argumente

Opțiune / Parametru Descriere
-L N Coboară cel mult N niveluri în adâncime.
-d Afișează doar directoarele.
-a Include și fișierele ascunse (cele care încep cu punct).
-I TIPAR Exclude fișierele și directoarele care se potrivesc cu tiparul; mai multe tipare se separă cu | (ex. -I 'node_modules|vendor').
-h Arată dimensiunea fiecărui fișier într-o formă ușor de citit (K, M, G).
--dirsfirst Afișează directoarele înaintea fișierelor.

Exemple

Exemplul 1: Structura unui mic site

Fără opțiuni, tree arată tot conținutul directorului curent, iar la final numără directoarele și fișierele (directorul de pornire nu este numărat).

tree site-iasi

Ieșire în terminal

site-iasi
├── css
│   └── stil.css
├── index.html
├── js
│   └── app.js
└── poze
    ├── copou.jpg
    └── palatul-culturii.jpg

3 directories, 5 files

Exemplul 2: Doar primul nivel, cu directoarele întâi

-L 1 nu coboară în subdirectoare, iar --dirsfirst pune directoarele la început.

tree -L 1 --dirsfirst proiect

Ieșire în terminal

proiect
├── config
├── public
├── src
├── composer.json
└── README.md

3 directories, 2 files

Exemplul 3: Excluderea directoarelor grele și afișarea dimensiunilor

-I ascunde dependențele instalate, iar -h afișează dimensiunea fiecărui element.

tree -h -I 'node_modules|vendor' -L 2 aplicatie

Ieșire în terminal

aplicatie
├── [ 612]  package.json
├── [4.0K]  public
│   └── [1.2K]  index.html
└── [4.0K]  src
    ├── [2.3K]  app.js
    └── [ 845]  utile.js

2 directories, 4 files

Greșeli frecvente

  • Rularea tree în directorul personal sau în rădăcina / fără -L: comanda listează sute de mii de fișiere și umple terminalul. Pornește cu tree -L 2.
  • Concluzia că un director e gol pentru că fișierele de configurare (.env, .htaccess) nu apar: acestea sunt ascunse și se văd doar cu -a.

Comenzi înrudite

  • ls: Listează fișierele și directoarele dintr-o locație, cu detalii despre dimensiuni, drepturi de acces și date.
  • find: Caută fișiere și directoare în mod recursiv pe baza numelui, tipului, mărimii sau datei.
  • du: Estimează și afișează spațiul ocupat pe disc de directoare și fișiere.
  • cd: Schimbă directorul de lucru curent în terminal.