Gostaria de saber se existe uma maneira de aumentar a find
velocidade no terminal, não faz sentido que o uso da internet google para pesquisar tenha uma velocidade melhor do que fazer uma pesquisa local por seqüências de caracteres ou apenas nomes de arquivos.
Gostaria de saber se existe uma maneira de ter uma base de indexação local, uma vez criada, no futuro, o comando find pode ser super rápido.
Ou alguma outra sugestão?
Obrigado!
Respostas:
Tente usar
locate
, ele deve fazer o que você quiser.fonte
locate
vem (geralmenteslocate
) e usarupdatedb
para reconstruir o banco de dados. :-)Depende muito do seu critério de pesquisa.
Se você procurar nomes de arquivos ou padrões de nome de arquivo, a localização será muito mais rápida, mas não adequada para arquivos gerados recentemente, pois o índice usado é normalmente atualizado apenas uma vez por dia. Mas se você pode usá-lo, é super rápido.
Mas com o find você pode procurar o tamanho, a idade do arquivo e outras coisas que não são pesquisáveis por localização.
Se você souber onde pesquisar, poderá usar o caminho para delimitar o escopo da pesquisa:
pesquisaria apenas arquivos de 2 a 10 M, com no máximo 1 ano em / some / path.
Os programas disponíveis no caminho podem ser pesquisados através dos quais, ajuda, lib e arquivos de configuração com whereis. Exemplos:
fonte
Usar
locate
O motivo é que
locate
usa um banco de dados de todos os diretórios e arquivos existentes que já foram criados exatamente como você imaginou!http://linux.about.com/od/commands/l/blcmdl5_locatedb.htm
Em algum intervalo definido (e mutável), uma tarefa executada varre o sistema de arquivos e, em seguida, cria um banco de dados. É nesse banco de dados (localizadob), com os índices apropriados que o
locate
comando contraria, em vez de varrer o disco rígido nesse ponto.Portanto, a vantagem é que é muito rápido em comparação com uma verificação no disco rígido. A desvantagem é que o banco de dados de localização (localizadob) não é 'ativo'; portanto, só pode ser usado para arquivos que existiam 'a partir da' última verificação.
Para atualizar o localb agora execute
updatedb
(ousudo updatedb
se necessário)btw Acabei de correr
sudo updatedb
localmente e levou 3 1/2 segundos! Eu tenho 31.000 arquivos.fonte
Como outros já apontaram, a localização pode ser uma ferramenta melhor para um pesquisador mais simples.
No entanto, para pesquisas mais complexas, você provavelmente está preso à busca.
Uma maneira de acelerar a busca é restringir em qual diretório seus arquivos estão, em vez de pesquisar em todo o diretório raiz.
fonte
para uma única operação de pesquisa; Não encontrei nenhuma aceleração; a menos que tente restringir a pesquisa usando as
find
opções.Contudo; se você deseja executar várias
find
operações no mesmo conjunto de arquivos ; Eu obtive uma aceleração significativa ao preencher um arquivo temporário com todos os nomes de arquivos e usandogrep
. Obviamente, isso não leva em consideração os arquivos adicionados ou excluídos.fonte