Wrapper amigável para o comando find do Linux, oferecendo sintaxe simplificada e recursos adicionais.
O Encontre é uma ferramenta de linha de comando que simplifica a busca de arquivos e diretórios no Linux. Desenvolvido como um wrapper para o comando find, proporciona uma interface mais intuitiva mantendo toda a potência da ferramenta original.
- Sintaxe simplificada e intuitiva
- Colorização de saída seguindo o padrão
ls - Contador de resultados
- Indicadores visuais de tipo de arquivo
- Filtros avançados por tamanho, data e tipo
- Salvamento de resultados em arquivo
- Disponível através dos comandos
encontreeencontrar
Via COPR:
sudo dnf copr enable richarddalves/encontre -y
sudo dnf install encontre -yVia PPA (Ainda não disponível. Opte pela Instalação Manual):
sudo add-apt-repository ppa:richarddalves/encontre
sudo apt update
sudo apt install encontreBaixe o pacote apropriado na página de Releases ou instale diretamente o script (recomendado):
# Download direto do script
wget https://raw.githubusercontent.com/richarddalves/encontre/main/bin/encontre
chmod +x encontre
sudo mv encontre /usr/local/bin/
sudo ln -s /usr/local/bin/encontre /usr/local/bin/encontrar- bash >= 4.0
- findutils
- coreutils
- bc
encontre [diretório] [opções...]# Buscar todos os arquivos no diretório atual
encontre .
# Ignorar diretórios específicos
encontre . --ignore .git node_modules
# Buscar apenas arquivos com extensão específica
encontre . --apenas *.py
# Contar resultados ao invés de listar
encontre . --contarencontre . --ignore PADRÃO...
encontre . -i PADRÃO...
# Exemplos
encontre . --ignore .git/ # Ignora diretório .git
encontre . -i node_modules *.log # Ignora múltiplos padrõesencontre . --apenas PADRÃO...
encontre . -a PADRÃO...
# Exemplos
encontre . --apenas *.md *.txt # Apenas markdown e texto
encontre . -a test_*.py # Apenas testes Pythonencontre . --tipo [arquivo|diretorio]
encontre . -t [a|d]
# Exemplos
encontre . --tipo arquivo # Tudo exceto diretórios
encontre . -t d # Apenas diretóriosencontre . --tamanho OPERADOR+TAMANHO
encontre . -t OPERADOR+TAMANHO
# Operadores: + (maior), - (menor), = (igual)
# Unidades: b, kb, mb, gb, tb (ou kib, mib, gib, tib)
# Exemplos
encontre . --tamanho +10mb # Maiores que 10MB
encontre . -t -1gb # Menores que 1GB
encontre . --tamanho =5kb # Exatamente 5KBencontre . --modificado TEMPO
encontre . -m TEMPO
# Formatos: min, h, d, m (minutos, horas, dias, meses)
# Exemplos
encontre . --modificado 7d # Últimos 7 dias
encontre . -m 2h # Últimas 2 horasencontre . --indicadores # Mostra todos: /, *, @, |
encontre . -i # Mesmo efeito
encontre . --indicador-simples # Apenas / para diretórios
encontre . --is # Mesmo efeitoencontre . --no-color # Desabilita cores
encontre . --nc # Mesmo efeito
encontre . --sem-cor # Mesmo efeito
encontre . --sc # Mesmo efeitoencontre . --salvar arquivo.txt
encontre . -s lista.txt
# Exemplo
encontre . --apenas *.log --salvar logs.txt# Buscar arquivos Python grandes modificados recentemente
encontre . --apenas *.py --tamanho +1mb --modificado 7d
# Contar arquivos ignorando diretórios de build
encontre . --ignore build dist --tipo arquivo --contar
# Salvar lista de diretórios sem cores
encontre . --tipo d --sem-cor --salvar diretorios.txtO Encontre oferece ajuda detalhada para cada opção:
encontre --help # Ajuda geral
encontre --tipo --ajuda # Ajuda sobre tipos
encontre --tamanho --ajuda # Ajuda sobre tamanhos
encontre -a --ajuda # Ajuda sobre --apenas| Operação | Comando find |
Comando encontre |
|---|---|---|
| Ignorar um diretório | find . -name .git -prune -o -print |
encontre . --ignore .git |
| Ignorar múltiplos diretórios | find . \( -path ./node_modules -o -path ./.git \) -prune -o -print |
encontre . --ignore .git node_modules |
| Ignorar arquivos por padrão | find . -not -name "*.log" |
encontre . --ignore *.log |
| Buscar apenas arquivos | find . -type f |
encontre . --tipo arquivo |
| Buscar apenas diretórios | find . -type d |
encontre . --tipo diretorio |
| Buscar por extensão | find src -name "*.rs" |
encontre src --apenas *.rs |
| Buscar por tamanho | find . -size +10M |
encontre . --tamanho +10mb |
| Buscar arquivos recentes | find . -mtime -7 |
encontre . --modificado 7d |
| Múltiplos critérios combinados | find . -type f -size +10M -mtime -7 -print |
encontre . --tipo arquivo --tamanho +10mb --modificado 7d |
| Buscar recentes e salvar em arquivo | find . -mtime -7 > lista.txt |
encontre . --modificado 7d --salvar lista.txt |
| Contar resultados | find . | wc -l |
encontre . --contar |
| Exibir com indicadores (/, *, @, |) | (requer script externo ou ls combinado) | encontre . --indicadores ou -i |
| Desabilitar cores na saída | (sem equivalente direto; depende de TERM/alias) | encontre . --sem-cor ou --no-color |
# Buscar arquivos .py em src ignorando node_modules
# Com find:
find src \( -path ./node_modules \) -prune -o -name "*.py" -print
# Com encontre (sem abreviações):
encontre src --ignore node_modules --apenas *.py
# Com encontre (com abreviações):
encontre src -i node_modules -a *.py
####################################################
# Buscar arquivos maiores que 10MB modificados na última semana
# Com find:
find . -type f -size +10M -mtime -7 -print
# Com encontre (sem abreviações):
encontre . --tipo arquivo --tamanho +10mb --modificado 7d
# Com encontre (com abreviações):
encontre . -t arquivo -t +10mb -m 7d
####################################################
# Buscar arquivos .rs, ignorando dist/ e lib/
# Com find:
find src \( -path ./dist -o -path ./lib \) -prune -o -name "*.rs" -print
# Com encontre (sem abreviações):
encontre src --ignore dist/ lib/ --apenas *.rs
# Com encontre (com abreviações):
encontre src -i dist/ lib/ -a *.rsencontre/
├── bin/
│ └── encontre # Script principal
├── packaging/
│ ├── debian/ # Arquivos para empacotamento Debian
│ └── rpm/ # Arquivos para empacotamento RPM
├── LICENSE
├── Makefile
└── README.md
# Construir pacote RPM
make rpm
# Construir pacote DEB
make deb
# Instalar localmente
sudo make installContribuições são bem-vindas. Por favor:
- Faça fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças (
git commit -am 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/nova-funcionalidade) - Abra um Pull Request
Encontrou um bug ou tem uma sugestão? Abra uma issue.
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para detalhes.
Richard Dias Alves
- GitHub: @richarddalves
- Email: dev@richardalves.com