Comando tree: Visualizando Estrutura de Diretorios
O Que Voce Vai Aprender
- Como entender uma estrutura de diretorios rapidamente com
tree - Como limitar a profundidade com
-Lpara que ate pastas enormes fiquem legiveis - Como filtrar a saida com
-d,-ae-I - Como sair de chamadas repetidas de
lspara uma unica visao estrutural
Para quem e: Iniciantes em Linux, e qualquer pessoa cansada de ls e cd para navegar pastas
Intro: O Momento "Perdida no ls" da Lina
ls, depois cd, depois ls de novo... mas simplesmente nao consigo visualizar a estrutura toda.tree te da de uma so vez. Ele mostra o conteudo de uma pasta como um diagrama em arvore. Vamos aprender hoje.Resumo Rapido
tree= um comando que visualiza a estrutura de diretorios como uma arvore (diagrama ramificado)- Execute
treepara o local atual, outree CAMINHOpara apontar para um lugar especifico - Para pastas enormes,
tree -L 2(limitar profundidade) etree -I 'node_modules'(excluir) sao essenciais
1. O Que E o tree?
Conclusao:
treeexibe o conteudo de uma pasta como um diagrama ramificado, para que voce veja toda a hierarquia sem executarlsrepetidamente.
tree e diferente do ls?ls lista apenas o conteudo de um local. tree desce por todos os niveis abaixo e mostra como um diagrama ramificado.ls automaticamente em cada pasta?Veja como a saida se parece.
.
├── 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 nivel (└──e o ultimo item)│: uma linha vertical mostrando que o galho continua abaixo- Profundidade da indentacao = profundidade da hierarquia
- Ultima linha: o numero total de diretorios e arquivos
2. Instalacao
Conclusao:
treefrequentemente nao esta instalado por padrao. Instale comaptoudnf.
tree imprimir "command not found", instale-o.# Ubuntu / Debian $ sudo apt install tree # RHEL / Fedora $ sudo dnf install tree # macOS (Homebrew) $ brew install tree
O nome do pacote e tree em toda distribuicao. Apos instalar, execute tree --version para confirmar a versao.
3. Uso Basico
Conclusao: Execute
treesem argumentos para mostrar o diretorio atual; usetree CAMINHOpara apontar para um local especifico.
Mostrar o diretorio atual
# Mostrar o conteudo abaixo do seu local atual $ tree
Apontar para um caminho especifico
# Mostrar um diretorio especifico $ tree /etc # Mostrar seu diretorio home $ tree ~
tree imprimiu tudo ate o nivel mais profundo! ...Embora tenha rolado um pouco para fora da tela.tree desce ate o nivel mais fundo. Entao executa-lo assim em uma pasta grande faz a tela rolar como uma cachoeira. Agora vamos aprender como controlar isso.4. Limitar a Profundidade (-L)
Conclusao: Use
tree -L NUMEROpara limitar quantos niveis sao mostrados. Para pastas enormes, comece com-L 1ou-L 2para entender a visao geral.
-L (Level). -L 2 mostra apenas ate o segundo nivel. Isso permite ver rapidamente so a forma geral.# 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 voce esta vendo pela primeira vez, aprofunde do raso para o fundo:
tree -L 1depois-L 2 - Especifique a profundidade como um inteiro de 1 ou mais (
-L 0e um erro) - Use raso quando quiser um "mapa", mais fundo para detalhes de uma pasta especifica
5. Filtrar o Que E Mostrado
Conclusao:
-dmostra apenas diretorios,-ainclui arquivos ocultos e-Iexclui pastas indesejadas.
tree se torna muito mais pratico.Apenas diretorios (-d)
# Quando voce quer apenas a estrutura de pastas $ tree -d -L 2
-d (directory) esconde todo arquivo e mostra apenas o esqueleto de pastas. E otimo para explicar como um projeto esta organizado.Incluir arquivos ocultos (-a)
# Mostrar entradas com prefixo ponto como .git e .env tambem $ tree -a -L 1
tree esconde arquivos ocultos por padrao
Arquivos que comecam com um ponto (.), como .bashrc ou .git, nao sao mostrados a menos que voce adicione -a (all). Se um arquivo de configuracao parece estar faltando, verifique se voce 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, entao tree so rola para sempre, certo...-I (Ignore) e a correcao padrao. Separe padroes com | (pipe) para excluir varios. node_modules, .git e dist sao os suspeitos de sempre.Inversamente, para ver "apenas esses", use -P
Quando voce quer mostrar apenas um certo padrao, use -P (Pattern). tree -P '*.js' mantem apenas arquivos .js. Se pastas vazias atrapalharem, adicione --prune para remover pastas que nao contem um arquivo correspondente.
6. Tornar Legivel e Mostrar Tamanhos
Conclusao:
-Fadiciona indicadores de tipo,-h --dumostra tamanhos acumulados de diretorios e-o ARQUIVOsalva a saida em um arquivo.
Adicionar indicadores de tipo (-F)
# Adicionar / a diretorios e * a executaveis $ tree -F -L 1
Voce obtém os mesmos indicadores que ls -F. Um / no final significa uma pasta, e * marca um arquivo executavel rapidamente.
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
--du mostra o tamanho de cada diretorio como a soma dos arquivos abaixo dele (a mesma ideia do comando du). Combinado com -h (human readable), voce obtém unidades legiveis como 1.2K ou 3.4M. E util para uma nocao aproximada de qual pasta esta consumindo espaco.
ncdu?tree como "desenhar a estrutura" e ncdu como "cacar e liberar espaco."Salvar o resultado em um arquivo (-o)
# Escrever a arvore em um arquivo de texto $ tree -L 2 -o structure.txt
Ao adicionar uma secao "Estrutura de diretorios" a um README, cole a saida de tree -L 2 para um diagrama de layout instantaneo. Elimine ruido com -I antes de colar para um resultado limpo.
7. Mini Exercicios: Tente no Seu Proprio Ambiente
Conclusao: Tres tarefas (limite de profundidade, apenas diretorios, excluir) fixam as opcoes praticas do
tree.
Tarefa 1: Execute tree -L 1 no seu diretorio home para ver o que esta diretamente abaixo dele.
Tarefa 2: Execute tree -d -L 2 ~ para mostrar apenas o esqueleto de pastas abaixo do seu home.
Tarefa 3: Em qualquer pasta de projeto, execute tree -I '.git' e confirme que .git foi excluido.
Dica para Tarefa 1
tree -L 1 ~
Limitando a um unico nivel com -L 1 lista apenas o conteudo direto como arvore, similar ao ls.
Dica para Tarefa 2
tree -d -L 2 ~
-d esconde arquivos e -L 2 limita a profundidade a dois niveis, entao apenas o esqueleto de pastas aparece.
Dica para Tarefa 3
tree -I '.git'
Escreva o nome a excluir apos -I. .git desaparece, deixando apenas a estrutura do codigo. Para excluir varios, separe com |, como '.git|node_modules'.
8. Armadilhas Comuns
Conclusao: Cuidado ao executar sem limite de profundidade em pastas grandes, esquecer arquivos ocultos e esquecer de colocar aspas no padrao de exclusao.
Tres erros frequentes
- Executar sem
-Lem uma pasta grande -> a tela rola como uma cachoeira comnode_modulese afins. Comece com-L 1ou-L 2. - Entrar em panico quando arquivos ocultos nao aparecem ->
treeesconde entradas com prefixo ponto por padrao. Verifique se voce esqueceu o-a. - Esquecer de colocar aspas no padrao de exclusao -> sem aspas simples, como em
-I node_modules|.git, o shell interpreta|como pipe e voce obtém comportamento inesperado. A forma correta e-I 'node_modules|.git'.
Padroes seguros e praticos
- Primeiro olhar em uma pasta:
tree -L 2(visao geral rasa) - Explicando um layout:
tree -d -L 2(apenas esqueleto) - Navegando um repositorio:
tree -L 2 -I 'node_modules|.git|dist'(remover o ruido)