Simples e fácil de usar a pesquisa de índice de arquivos CLI no unix?

2

Eu preciso de um utilitário unix simples que me permita pesquisar arquivos rapidamente e com parâmetros básicos (essa pasta, não esse tipo de arquivo ...).

Atualmente, uso uma função de busca criada manualmente com grep e muitos parâmetros. É rápido em pequenas pastas. O problema é que eu trabalho principalmente com uma pasta que contém cerca de 300k arquivos e então é muito lenta.

O que estou procurando é uma pequena ferramenta que indexaria o conteúdo dos arquivos nesse diretório (arquivos de texto) sob demanda e permitiria que eu pesquisasse dentro desse índice (e, claro, exibisse o conteúdo relativo).

O que eu estou procurando é o Ransack do agente para sistemas unix na CLI.

Eu gostaria, se possível, não ter que instalar muito. Esfinge , por exemplo, é muito trabalhoso, eu preciso de uma alternativa leve.

Obrigado pelas suas sugestões.

    
por kevin 05.08.2011 / 11:38

3 respostas

1

Antes de configurar algo mais complexo, tenho que perguntar se você já tentou ack . É como grep , mas projetado para atender às suas deficiências; O ack pesquisa automaticamente somente por arquivos de texto e pula os binários e assim por diante.

Veja a página inicial do ack (se estiver em funcionamento, no momento parece não funcionar para mim) ou instale-a por meio de um pacote gerente, se a sua distro tiver disponível e lhe der turbilhão.

Algumas versões da página inicial do ack parecem estar em Google cache , também.

    
por 05.08.2011 / 11:47
0

locate (ou workalikes) vem com muitos sistemas Linux. Ele examina o sistema de arquivos diariamente, portanto, se você não estiver procurando por uma solução em tempo real, essa pode ser a ferramenta para você.

Minha estação de trabalho do Fedora e os servidores CentOS vêm com mlocate , mas há vários outros sabores como bem.

    
por 05.08.2011 / 11:48
0

Depende de quanto tempo equivale a "muito incômodo", já que você está procurando uma solução de tempo de execução ou algo que vai extrair cada arquivo e construir um banco de dados a partir das respostas.

ack-grep , como sugerido por Janne Pikkaraiined, parece uma ferramenta útil na primeira categoria.

tracker (consulte o site) vale a pena ser visto como uma pesquisa de área de trabalho não necessariamente global com cli ferramentas, mas tem uma sintaxe de consulta estranha (pelo menos para o meu olho); eg

$> tracker-sparql -q "SELECT nie:url(?f) WHERE { ?f fts:match 'red OR blue yellow' }"

recoll parece que pode ter uma sintaxe de pesquisa mais compreensível e ser mais personalizável do que o rastreador. No entanto, a ferramenta CLI não é criada por padrão . Curiosamente, você também pode criar uma API do Python.

Este artigo sobre linux.com é interessante.

    
por 05.08.2011 / 12:27