Repolode
tavianator

tavianator/bfs

Uma variante breadth-first do comando UNIX find, que lista arquivos superficiais antes dos mais profundos e é compatível com find POSIX, BSD e GNU.

Estrelas
1,282
Forks
44
Issues abertas
15
Último commit
há 9 dias

O que é?

bfs é uma variante do comando UNIX find que percorre árvores de diretórios em breadth-first, em vez de depth-first. Como lista os arquivos dos mais superficiais aos mais profundos, você não precisa esperar que ele percorra por completo uma subárvore profunda e sem relação com a busca para chegar ao arquivo que procura.

O objetivo é manter a compatibilidade com várias versões do find, incluindo POSIX, GNU, FreeBSD, OpenBSD, NetBSD e macOS. Além disso, facilita tarefas comuns: os argumentos podem aparecer em qualquer ordem, sugestões ajudam a corrigir erros de digitação nas opções, e uma etapa de análise estática avisa quando os resultados de expressões são ignorados. Também adiciona o operador -exclude, que ignora subárvores inteiras, e -nohidden, que ignora arquivos ocultos.

bfs é escrito em C, está disponível nos gerenciadores de pacotes de várias distribuições Linux e sistemas macOS e BSD, e pode ser compilado com o fluxo de trabalho configure e make. Bibliotecas opcionais do sistema, como ACL, attr, libcap, liburing e oniguruma, habilitam recursos adicionais.

Recursos principais

  • 01Lista arquivos em breadth-first, fazendo com que correspondências em níveis mais superficiais apareçam antes das que estão em subárvores profundas.
  • 02Aceita opções e expressões em posições flexíveis, ao contrário do find, que é mais estrito.
  • 03Sugere correções para argumentos digitados incorretamente.
  • 04Avisa quando os resultados de expressões são ignorados.
  • 05Oferece -exclude para ignorar subárvores inteiras e -nohidden para ignorar arquivos ocultos.

Casos de uso

  • Encontrar um arquivo em uma árvore de projeto grande sem saber a que profundidade ele está.
  • Substituir find em scripts sem abrir mão de predicados e opções conhecidos.
  • Pesquisar árvores de diretórios ignorando .git ou outras pastas indesejadas com -exclude.

Início rápido

  1. 1

    Instale pelo Homebrew no macOS

    brew install bfs
  2. 2

    Ou instale pelo gerenciador de pacotes da sua distribuição Linux (por exemplo, Arch Linux)

    pacman -S bfs
  3. 3

    Ou compile a partir do código-fonte: baixe uma versão ou clone o repositório e execute configure e make

    ./configure && make

Antes de usar

  • Para compilar a partir do código-fonte, é necessário ter um compilador C, GNU make e Bash, além de bibliotecas de sistema opcionais para usar todos os recursos.

Em coleções

Tópicos

Perguntas frequentes

O que é bfs?
Uma variante breadth-first do comando UNIX find, que lista arquivos superficiais antes dos mais profundos e é compatível com find POSIX, BSD e GNU. bfs é uma variante do comando UNIX find que percorre árvores de diretórios em breadth-first, em vez de depth-first. Como lista os arquivos dos mais superficiais aos mais profundos, você não precisa esperar que ele percorra por completo uma subárvore profunda e sem relação com a busca para chegar ao arquivo que procura.
bfs é gratuito? Qual é a licença?
bfs é open source sob a licença 0BSD. Confira os termos da licença antes de usá-lo em produtos comerciais.
bfs ainda é mantido?
Manutenção ativa. O último commit de bfs foi em 13 de out. de 2026.
Para que posso usar bfs?
Encontrar um arquivo em uma árvore de projeto grande sem saber a que profundidade ele está. Substituir find em scripts sem abrir mão de predicados e opções conhecidos. Pesquisar árvores de diretórios ignorando .git ou outras pastas indesejadas com -exclude.
Como instalar bfs?
Instale pelo Homebrew no macOS: brew install bfs Ou instale pelo gerenciador de pacotes da sua distribuição Linux (por exemplo, Arch Linux): pacman -S bfs Ou compile a partir do código-fonte: baixe uma versão ou clone o repositório e execute configure e make: ./configure && make
Onde consigo bfs?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/tavianator/bfs

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados