[TUTORIAL] Listando Arquivos em Árvore com Comando tree

🌳 Como instalar o comando tree em diferentes sistemas

O comando tree exibe a estrutura de diretΓ³rios de forma hierΓ‘rquica no terminal.
Por padrΓ£o, ele nΓ£o vem instalado em todos os sistemas, mas Γ© fΓ‘cil de adicionar.


🐧 Linux

Debian, Ubuntu, Mint:

sudo apt update
sudo apt install tree

RedHat, CentOS, Fedora:

sudo yum install tree
# ou
sudo dnf install tree

🍎 macOS

Se vocΓͺ ainda nΓ£o tem o Homebrew, instale com:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Depois:

brew install tree

πŸͺŸ Windows

CMD / PowerShell (nativo):

tree /f

/f lista arquivos; sem ele, mostra apenas pastas.

Git Bash (versΓ£o estilo Unix):

  1. Instale o Git for Windows
  2. Abra o Git Bash
  3. Rode:
tree -L 2

🐚 WSL (Ubuntu no Windows)

sudo apt update
sudo apt install tree

βœ… Exemplos de uso

  • Exemplo simples - Pasta de um projeto pessoal
tree src/shared
  • EntΓ£o obtenho
src/shared
β”œβ”€β”€ businessRules
β”‚   β”œβ”€β”€ constants
β”‚   β”‚   └── userFunctions.const.ts
β”‚   └── enums
β”‚       β”œβ”€β”€ companySignature.enum.ts
β”‚       β”œβ”€β”€ companyStatus.enum.ts
β”‚       β”œβ”€β”€ publicRoutes.enum.ts
β”‚       └── userAssaignaments.enum.ts
β”œβ”€β”€ constants
β”‚   └── messages.const.ts
β”œβ”€β”€ crypto
β”‚   β”œβ”€β”€ encrypt.ts
β”‚   └── verifyEncryption.ts
β”œβ”€β”€ database
β”‚   └── prismaClient.ts
β”œβ”€β”€ date
β”‚   └── generateExpiresAt.ts
β”œβ”€β”€ enums
β”‚   β”œβ”€β”€ DefaultColorScheme.enum.ts
β”‚   └── frontEndRoutes.enum.ts
β”œβ”€β”€ errors
β”‚   β”œβ”€β”€ constants
β”‚   β”‚   β”œβ”€β”€ clientErrors.const.ts
β”‚   β”‚   └── systemErrors.const.ts
β”‚   β”œβ”€β”€ enums
β”‚   β”‚   └── errorType.enum.ts
β”‚   β”œβ”€β”€ throwErrorHandler.ts
β”‚   └── utils
β”‚       └── isHandledApolloError.ts
β”œβ”€β”€ formatters
β”‚   β”œβ”€β”€ nameFormatter.ts
β”‚   └── userNameFormatter.ts
β”œβ”€β”€ helpers
β”‚   └── redis
β”‚       β”œβ”€β”€ enums
β”‚       β”‚   └── redisKeys.enum.ts
β”‚       β”œβ”€β”€ operations
β”‚       β”‚   β”œβ”€β”€ getManyRedis.ts
β”‚       β”‚   └── saveManyToRedis.ts
β”‚       └── redisClient.ts
β”œβ”€β”€ logger
β”‚   β”œβ”€β”€ constants
β”‚   β”‚   └── systemLogs.const.ts
β”‚   β”œβ”€β”€ systemLogger.ts
β”‚   └── transports
β”‚       └── consoleLogger.ts
β”œβ”€β”€ security
β”‚   β”œβ”€β”€ authenticateUser.ts
β”‚   └── generateCredentials.ts
β”œβ”€β”€ services
β”‚   β”œβ”€β”€ emails
β”‚   β”‚   β”œβ”€β”€ companyProvisioning
β”‚   β”‚   β”‚   β”œβ”€β”€ handlerEmailCompanyProvisioning.ts
β”‚   β”‚   β”‚   └── templateEmailCompanyProvisioning.hbs
β”‚   β”‚   β”œβ”€β”€ constants
β”‚   β”‚   β”‚   └── sendersAgents.const.ts
β”‚   β”‚   β”œβ”€β”€ sendEmailTransactional.ts
β”‚   β”‚   └── userCompanyEmail
β”‚   β”‚       β”œβ”€β”€ handlerEmailUserCompany.ts
β”‚   β”‚       └── templateEmailUserCompany.hbs
β”‚   └── providers
β”‚       └── brevo
β”‚           └── brevoClient.ts
β”œβ”€β”€ token
β”‚   └── generateToken.ts
β”œβ”€β”€ utils
β”‚   └── generateUniqueUsername.ts
└── validators
    └── cnpj.validator.ts
  • Outros exemplos
tree -L 2
  • -L 2 β†’ mostra atΓ© 2 nΓ­veis
  • -a β†’ inclui arquivos ocultos
  • -I 'node_modules|.git' β†’ ignora pastas especΓ­ficas
tree -L 2 -a -I 'node_modules|.git' > estrutura.txt

Exporta a Γ‘rvore de diretΓ³rios para um .txt


πŸ’‘ Dica extra (alias)

Adicione ao seu .bashrc ou .zshrc:

alias t="tree -L 2 -a -I 'node_modules|.git'"

Assim, vocΓͺ pode usar sΓ³ t no terminal para listar a estrutura rapidamente.


Pronto! Agora vocΓͺ tem o tree funcionando como deve em qualquer sistema. 🌱

Essa ferramenta Γ© muito boa para adicionar a contextos em IA. Muitas vezes acabei descobrindo que bugs eram por conta de arquivos com nomes errados ou em locais incorretos.

Exatamente, eu uso muito ela para contextualizar a IA e ela meio que jΓ‘ entende os arquivos utilitΓ‘rios mesmo sem saber os conteΓΊdos. EntΓ£o ela jΓ‘ entrega o arquivo importando certinho essas funΓ§Γ΅es. E uma coisa bacana que ajudou na produtividade com TS/JS foi exportar todas com export { nomeFuncao } e nΓ£o com expor default nomeFuncao. Ai eu digo para a IA no contexto que nada no meu sistema Γ© exportado como default. Talvez esse insight ajude masi alguΓ©m a aumentar a produtividade.

Interessante demais, obrigado por essa informaΓ§Γ£o...

Tamojunto. Tem uma galera querendo reunir para engrenarmos um sistema de SaaS multi empresas para multi usuΓ‘rios e multiusuΓ‘rios para multiplas empresas. Se quiser da uma olhada na discuΓ§Γ£o do post: https://www.tabnews.com.br/RomarioRodrigues/pitch-multusai-equipe-de-marketing-autonoma-para-saas-e-startups-iniciais
Disponha. Aqui Γ© um pelo outro!