Comando tree: Visualizando Estrutura de Diretórios
O que você vai conseguir fazer
- Mostrar a estrutura de diretórios como um diagrama ramificado com `tree`
- Limitar a profundidade com `-L` para que até uma pasta enorme fique legível
- Combinar `-d`, `-a` e `-I` para filtrar a saída só no que você precisa
Pré-requisitos (leia estes primeiro)
O Que Você Vai Aprender
- Como entender uma estrutura de diretórios rapidamente com
tree - Como limitar a profundidade com
-Lpara que até pastas enormes fiquem legíveis - Como filtrar a saída com
-d,-ae-I - Como sair de chamadas repetidas de
lspara uma única visão estrutural
Para quem é: Iniciantes em Linux. Quem está cansada de usar ls e cd para navegar entre pastas.
As palavras deste artigo
- DiretórioUm local que organiza arquivos. É a mesma ideia da "pasta" do Windows ou macOS.: é a mesma coisa que o Windows e o macOS chamam de pasta. "Pasta" e "diretório" significam o mesmo.
- Nível: é a profundidade com que as pastas ficam aninhadas umas nas outras.
- Arquivo oculto: é um arquivo cujo nome começa com
.. Ele não aparece numa listagem comum. Também se chama dotfile. - Opção: é um indicador como
-Lescrito depois do comando. Ele muda o comportamento. - Diretório atual: é o diretório onde você está agora. Leia como "onde você está".
- ShellUm programa interativo que interpreta os comandos digitados e os executa.: é o programa do terminal que recebe o que você digita. "Shell", "terminal" e "console" indicam quase a mesma coisa.
- AspasEnvolver um texto entre aspas (' ou ") para que seja tratado como um único valor, por exemplo um que tenha espaços.: é envolver o texto em
'. Dentro das aspas, os símbolos passam como caracteres comuns.
O tree apenas exibe informação. Ele nunca apaga nem reescreve um arquivo, então rodar não muda nada nas suas pastas.
Intro: O Momento "Perdida no ls" da Lina
ls, depois cd, depois ls de novo. Mesmo assim não consigo visualizar a estrutura toda.tree te dá de uma só vez. Ele mostra o conteúdo de uma pasta como um diagrama ramificado.Resumo Rápido
tree= um comando que visualiza a estrutura de diretórios como uma árvore (diagrama ramificado)- Execute
treepara o local atual, outree CAMINHOpara apontar para um lugar específico - Para pastas enormes,
tree -L 2(limitar profundidade) etree -I 'node_modules'(excluir) são essenciais
1. O Que É o tree?
Conclusão:
treeexibe o conteúdo de uma pasta como um diagrama ramificado, para que você veja toda a hierarquia sem executarlsrepetidamente.
tree é diferente do ls?ls lista apenas o conteúdo de um local. O tree desce por todos os níveis abaixo e mostra tudo como um diagrama ramificado.ls automaticamente em cada pasta?Veja como fica a saída.
.
├── README.md
├── src
│ ├── index.js
│ └── utils
│ └── format.js
└── tests
└── index.test.js
3 directories, 4 files
Como ler o diagrama
├──/└──: um arquivo ou pasta naquele nível. O└──marca o último item│: uma linha vertical mostrando que o galho continua abaixo- Profundidade do recuo: ela corresponde direto à profundidade da hierarquia
- Última linha: o número total de diretórios e arquivos
2. Instalação
Conclusão:
treefrequentemente não está instalado por padrão. Instale comaptoudnf.
tree imprimir "command not found", instale.# Ubuntu / Debian $ sudo apt install tree # RHEL / Fedora $ sudo dnf install tree # macOS (Homebrew) $ brew install tree
O nome do pacote é tree em toda distribuição. Quando a instalação terminar, execute tree --version para confirmar.
3. Uso Básico
Conclusão: Execute
treesem argumentos para mostrar o diretório atual; usetree CAMINHOpara apontar para um local específico.
Mostrar o diretório atual
# Mostrar o conteudo abaixo do seu local atual $ tree
Apontar para um caminho específico
# Mostrar um diretorio especifico $ tree /etc # Mostrar seu diretorio home $ tree ~
tree imprimiu tudo até o nível mais profundo.Lina se enrola: a tela não parava de rolar
tree na pasta do meu projeto. A tela rolou como uma cachoeira e só sobrou a última linha.$ tree
(dezenas de milhares de linhas passam correndo) 12043 directories, 98217 files
tree desce até o nível mais fundo.node_modules sai inteira, item por item.-L e tire as pastas desnecessárias com -I. Esses dois deixam a saída legível.-L 2 e descer a partir dali.$ tree -L 2 -I 'node_modules|.git'
Se a saída passou correndo, escreva tree | less. Ele mostra uma tela por vez. Dentro do less, use as setas para andar e q para sair.
4. Limitar a Profundidade (-L)
Conclusão: Use
tree -L NUMEROpara limitar quantos níveis são mostrados. Para pastas enormes, comece com-L 1ou-L 2para entender a visão geral.
-L (Level). O -L 2 mostra apenas até o segundo nível.# Apenas um nivel (conteudo direto, parecido com ls) $ tree -L 1 # Ate dois niveis $ tree -L 2 /var/log
/var/log ├── apt │ ├── history.log │ └── term.log ├── journal ├── syslog └── dpkg.log 2 directories, 4 files
Quando usar -L
- Para uma pasta que você vê pela primeira vez, aprofunde do raso para o fundo:
tree -L 1, depois-L 2 - Especifique a profundidade como um inteiro de 1 ou mais (
-L 0dá erro) - Use raso quando quiser um mapa. Vá mais fundo quando quiser os detalhes de uma pasta
5. Filtrar o Que É Mostrado
Conclusão:
-dmostra apenas diretórios,-ainclui arquivos ocultos e-Iexclui pastas indesejadas.
tree fica muito mais prático.Apenas diretórios (-d)
# Quando voce quer apenas a estrutura de pastas $ tree -d -L 2
-d (directory) esconde todos os arquivos e mostra apenas o esqueleto de pastas.Incluir arquivos ocultos (-a)
# Mostrar entradas com prefixo ponto como .git e .env tambem $ tree -a -L 1
tree esconde arquivos ocultos por padrão
Arquivos que começam com um ponto (.), como .bashrc ou .git, só aparecem se você adicionar -a (all).
Se um arquivo de configuração parece estar faltando, verifique se você esqueceu o -a.
Excluir pastas indesejadas (-I)
# Excluir node_modules da saida $ tree -I 'node_modules' # Excluir varios, separados por | $ tree -I 'node_modules|.git|dist'
node_modules tem dezenas de milhares de arquivos. Foi isso que inundou a minha tela há pouco.-I (Ignore) é a correção padrão.| (pipe) para excluir vários de uma vez. node_modules, .git e dist são os suspeitos de sempre.Ao contrário, para ver apenas certos arquivos, use -P
Quando você quer mostrar apenas um padrão, use -P (Pattern). Escrever tree -P '*.js' mantém só os arquivos .js.
Se pastas vazias atrapalharem, adicione --prune. Ele remove as pastas que não contêm nenhum arquivo correspondente.
6. Tornar Legível e Mostrar Tamanhos
Conclusão:
-Fadiciona indicadores de tipo,-h --dumostra tamanhos acumulados de diretórios e-o ARQUIVOsalva a saída em um arquivo.
Adicionar indicadores de tipo (-F)
# Adicionar / a diretorios e * a executaveis $ tree -F -L 1
Você obtém os mesmos indicadores do ls -F. Um / no final significa pasta e um * marca arquivo executável. Dá para distinguir de relance.
Mostrar tamanhos (-h / --du)
# Mostrar o tamanho de cada arquivo em unidades legíveis $ tree -h # Tambem mostrar tamanhos de diretorios (acumulados) $ tree -h --du -L 1
O que --du significa
O --du mostra o tamanho de cada diretório como a soma dos arquivos abaixo dele. É a mesma ideia do comando du.
Combinado com -h (human readable), você obtém unidades legíveis como 1.2K ou 3.4M. É útil para ter uma noção aproximada de qual pasta está consumindo espaço.
ncdu?tree como a ferramenta que desenha a estrutura e no ncdu como a que caça e libera espaço.Salvar o resultado em um arquivo (-o)
# Escrever a arvore em um arquivo de texto $ tree -L 2 -o structure.txt
Isso ajuda quando você adiciona uma seção "Estrutura de diretórios" a um README. Cole a saída de tree -L 2 e o diagrama fica pronto na hora.
Elimine o ruído com -I antes de colar para um resultado limpo.
Note que o -o cria o arquivo indicado e escreve o resultado nele. Se já existir um arquivo com esse nome, o conteúdo dele é substituído. Rode ls antes para checar se há um arquivo de mesmo nome.
7. Mini Exercícios: Tente no Seu Próprio Ambiente
Conclusão: Três tarefas (limite de profundidade, apenas diretórios, excluir) fixam as opções práticas do
tree.
tree só exibe coisas, então você pode rodar quantas vezes quiser.Desafio 1: Mostre o que está logo abaixo do seu diretório home, com um nível apenas.
Ver Dica 1 (Direcionamento)
Use a opção que limita a profundidade. Você quer o conteúdo direto, então escolha o valor mais raso.
A palavra "Level" é a pista.
Ver Dica 2 (Nome do comando)
Use tree. Escreva -L seguido do número, que aqui é 1.
O seu home pode ser escrito como ~.
Ver Resposta
$ tree -L 1 ~
/home/user ├── Documents ├── Downloads ├── Videos └── notes.txt 3 directories, 1 file
Limitar com -L 1 cobre o mesmo alcance do ls, desenhado como árvore.
Desafio 2: Mostre apenas o esqueleto de pastas abaixo do seu home, até dois níveis. Sem arquivos.
Ver Dica 1 (Direcionamento)
Combine duas opções. Uma limita a profundidade. A outra esconde os arquivos.
Para a segunda, a palavra "directory" é a pista.
Ver Dica 2 (Nome do comando)
A profundidade é -L 2. Somente diretórios é -d. As duas vão depois de tree, lado a lado.
Ver Resposta
$ tree -d -L 2 ~
/home/user ├── Documents │ └── work ├── Downloads └── Videos 4 directories
O -d tira os arquivos e o -L 2 mantém a profundidade em dois níveis. Até a última linha conta só diretórios.
Desafio 3: Em uma pasta de projeto, exclua o .git da saída e confirme que ele sumiu.
Ver Dica 1 (Direcionamento)
Informe ao comando o nome da pasta que você não quer ver. Essa opção é diferente do limite de profundidade.
A palavra "Ignore" é a pista.
Ver Dica 2 (Nome do comando)
Use tree -I. Escreva o nome a excluir depois do -I, entre aspas.
Sem as aspas, o shell lê o | como um pipe.
Ver Resposta
$ tree -a -L 1 -I '.git'
. ├── README.md ├── src └── tests 2 directories, 1 file
Mesmo com -a, o .git não aparece. Essa é a prova de que a exclusão funcionou.
Para excluir vários, separe com |, como em '.git|node_modules'.
8. Armadilhas Comuns
Conclusão: Cuidado ao executar sem limite de profundidade em pastas grandes, esquecer arquivos ocultos e esquecer de colocar aspas no padrão de exclusão.
Três erros frequentes
- Executar sem
-Lem uma pasta grande -> a tela rola como uma cachoeira. Comece com-L 1ou-L 2 - Entrar em pânico quando arquivos ocultos não aparecem -> o
treeesconde entradas com ponto por padrão. Cheque se esqueceu o-a - Esquecer as aspas no padrão de exclusão -> o shell lê o
|como pipe. Escreva-I 'node_modules|.git'
Padrões seguros e práticos
- Primeiro olhar em uma pasta:
tree -L 2(visão geral rasa) - Explicando um layout:
tree -d -L 2(apenas o esqueleto) - Navegando um repositório:
tree -L 2 -I 'node_modules|.git|dist'(remove o ruído)
9. Revisão
ls, o tree percorre os níveis abaixo e desenha tudo como um diagrama.-L e tiro as pastas indesejadas com -I.-L 2. Só esse passo já deixa a saída legível.Resumo em 3 Linhas
- O
treedesenha a estrutura de diretórios como um diagrama ramificado e substitui várias chamadas dels - O
-L NUMEROlimita a profundidade. Comece com-L 2numa pasta que você vê pela primeira vez - O
-dmostra só pastas, o-ainclui arquivos ocultos e o-I 'PADRAO'exclui o que você não precisa