De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

fzf - Buscador Fuzzy para linha de comando

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 20 de abril de 2025

Geralmente, quando precisamos localizar um arquivo em nossos sistemas, usamos os comandos locate ou find seguidos das opções que identificam o que buscamos. Para paginar os resultados, usamos os comandos more ou então less.

O problema com os comandos more e less é que são bastante limitados, possuem poucos recursos para navegar pelos resultados.

Para realizar buscar mais complexas sobre um grande volume de informações, com um grande nível de interatividade, temos o comando fzf (Fuzzy Finder). O comando fzf é uma ferramenta interativa extremamente poderosa para a linha de comando no Linux e outros sistemas Unix-like. Seu objetivo principal não é paginar arquivos, mas sim facilitar e acelerar buscas e seleções em grandes listas de itens, utilizando um mecanismo de busca "fuzzy" (aproximação ou similaridade de padrões).

Diferente da busca tradicional, o fzf permite encontrar rapidamente itens mesmo que você não digite o termo exato. Ele faz isso utilizando uma busca baseada em aproximação (fuzzy), onde basta digitar partes ou fragmentos das palavras esperadas, e os resultados mais próximos aparecerão instantaneamente. Enquanto paginadores te ajudam a ler, o fzf te ajuda a encontrar e escolher de forma ágil.

Por exemplo, se você buscar "docu" em uma lista contendo "document", "documentation", "doc", todos esses poderão aparecer como resultados relevantes, mesmo que estejam incompletos ou haja erros de digitação.

Outro grande diferencial do fzf é a capacidade de selecionar itens de uma lista. Ao receber uma lista (de arquivos, nomes, comandos, processos, etc.), você pode navegar pelas opções usando as setas do teclado e confirmar a seleção pressionando <Enter>. O item selecionado pode ser usado como saída em outros comandos, o que potencializa scripts e fluxos automáticos no terminal.

Enquanto paginadores (como more e less) se concentram na exibição paginada de conteúdos grandes (arquivos, logs, etc.), o fzf é dedicado à busca, filtro, seleção e automação em listas.

O fzf atualiza os resultados em tempo real à medida em que digita, tornando-o extremamente rápido e interativo.

Outro recurso muito interessante é a visualização do conteúdo dos arquivos constantes da listagem obtida:

$ find . -type f -name \*.t2t | fzf --preview 'less {}'

No comando acima estou buscando por arquivos com o sufixo .t2t (txt2tags) e usando o comando fzf para gerar a listagem e exibir seu conteúdo (--preview) com o comando less, como exemplificado na figura abaixo, em que temos à esquerda a listagem gerada pelo comando fzf e à direita a visualização do arquivo selecionado:

São muitas as possibildades, e certamente este comando contribuirá em muito para o aumento de sua produtividade.

O comando fzf, por padrão, não vem instalado em sistemas Debian GNU/Linux. Para instalar em sistemas Debian e derivados, digite:

$ sudo apt install fzf
Error: No site found with the domain 'mapasmentais.idph.com.br' (Learn more)