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.
jhspetersson/fselect
Uma ferramenta de linha de comando para encontrar arquivos no sistema de arquivos com consultas no estilo SQL, em vez de usar flags do find e do ls.
- Estrelas
- 4,476
- Forks
- 87
- Issues abertas
- 6
- Último commit
- há 8 dias
O que é?
fselect é uma ferramenta de linha de comando escrita em Rust para encontrar arquivos com uma sintaxe flexível, no estilo SQL. Você seleciona colunas como name, path, size ou modified, especifica diretórios com uma cláusula from e aplica filtros com uma cláusula where. A ferramenta também oferece suporte a group by, having, order by, limit e formatação da saída em JSON, CSV ou HTML.
Além de filtros básicos por nome e tamanho, fselect pode pesquisar dentro de arquivos zip, respeitar arquivos .gitignore, .hgignore e .dockerignore e filtrar por dimensões de imagem, dados EXIF, tags de áudio, atributos estendidos, ACLs POSIX, hashes de arquivos e tipo MIME. Subconsultas permitem comparar resultados entre vários diretórios, e funções de agregação e data permitem gerar estatísticas dos arquivos encontrados.
Para árvores de diretórios grandes, é possível usar opcionalmente o índice plocate no Linux ou o índice Everything no Windows para acelerar as buscas. Também há um modo interativo.
Recursos principais
- 01Usa uma gramática flexível no estilo SQL para selecionar, filtrar, agrupar e ordenar arquivos.
- 02Pesquisa dentro de arquivos zip e filtra por EXIF, dimensões de imagem e tags de áudio.
- 03Oferece suporte às regras de .gitignore, .hgignore e .dockerignore.
- 04Filtra por hashes de arquivos, tipo MIME, atributos estendidos, permissões e proprietário.
- 05Oferece suporte a subconsultas em vários diretórios e funções de agregação.
- 06Exibe os resultados como JSON, CSV, HTML ou texto simples.
Casos de uso
- Encontrar arquivos grandes ou antigos para liberar espaço em disco em vários diretórios.
- Auditar arquivos com permissões perigosas ou proprietários inesperados em um servidor.
- Localizar arquivos duplicados comparando hashes entre diretórios.
- Listar arquivos de mídia por dimensões, duração ou tags para organizar uma biblioteca.
Início rápido
- 1
Instale Rust com Cargo
- 2
Instale o fselect pelo crates.io
cargo install fselect - 3
Execute uma consulta para listar arquivos por tamanho e caminho
fselect size, path from /home/user where name = '*.cfg' or name = '*.tmp'
Antes de usar
- O suporte a .gitignore, .hgignore e .dockerignore está marcado como experimental.
- Atualmente, a pesquisa dentro de arquivos compactados é compatível apenas com arquivos zip.
Em coleções
Tópicos
Perguntas frequentes
- O que é fselect?
- Uma ferramenta de linha de comando para encontrar arquivos no sistema de arquivos com consultas no estilo SQL, em vez de usar flags do find e do ls. fselect é uma ferramenta de linha de comando escrita em Rust para encontrar arquivos com uma sintaxe flexível, no estilo SQL. Você seleciona colunas como name, path, size ou modified, especifica diretórios com uma cláusula from e aplica filtros com uma cláusula where. A ferramenta também oferece suporte a group by, having, order by, limit e formatação da saída em JSON, CSV ou HTML.
- fselect é gratuito? Qual é a licença?
- fselect é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- fselect ainda é mantido?
- Manutenção ativa. O último commit de fselect foi em 28 de out. de 2026.
- Para que posso usar fselect?
- Encontrar arquivos grandes ou antigos para liberar espaço em disco em vários diretórios. Auditar arquivos com permissões perigosas ou proprietários inesperados em um servidor. Localizar arquivos duplicados comparando hashes entre diretórios. Listar arquivos de mídia por dimensões, duração ou tags para organizar uma biblioteca.
- Como instalar fselect?
- Instale Rust com Cargo Instale o fselect pelo crates.io: cargo install fselect Execute uma consulta para listar arquivos por tamanho e caminho: fselect size, path from /home/user where name = '*.cfg' or name = '*.tmp'
- Onde consigo fselect?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/jhspetersson/fselect
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma alternativa rápida e fácil de usar ao comando Unix find para localizar arquivos e diretórios pelo nome.
Uma alternativa moderna ao comando ls, com cores, ícones, status do Git e visualização em árvore em um único binário Rust.
Utilitário de linha de comando para Linux, Mac e Windows que lista sistemas de arquivos montados e seu uso, como o df, com filtros, ordenação e saída em tabela, CSV ou JSON.
Analisador rápido de uso de disco no terminal, escrito em Go, com interface interativa de console, saída não interativa e interface web opcional.
Um clone do jq em Rust, focado em correção, velocidade e simplicidade, disponível como CLI compatível com jq ou como biblioteca.