Como obtenho o mlocate para indexar apenas alguns diretórios?

19

Eu gostaria de usar mlocate no meu servidor Ubuntu, mas apenas para indexar certos diretórios (por exemplo, /home e /data , mas nem tudo sob / ). No entanto, a configuração padrão do mlocate funciona da maneira oposta; você especifica os caminhos que deseja remover (com PRUNE_PATHS ).

Existe alguma maneira fácil de conseguir isso, ou alguma utilidade semelhante que fará o que eu quero? (nota: ele deve manter um índice como mlocate , então find não é aceitável, por exemplo) Obrigado.

    
por Andrew Ferrier 06.07.2012 / 15:31

3 respostas

13

Você pode usar a opção -U (--PATH de raiz do banco de dados)

updatedb -l 0 -U /home/user/music -o /home/user/databasefile

-o escreve no arquivo de saída

-l 0 faz com que você possa lê-lo, caso contrário, só é acessível para localizar

Então você pode usá-lo como:

locate -d /home/user/databasefile Dylan

-d define o caminho do banco de dados

Para usar o mlocate com mais de um diretório raiz, simplesmente crie dois bancos de dados e use o locate com duas opções do databasepath como esta:

locate -d /home/user/dbfile1 -d /home/user/dbfile2 searchstring

Para resumir e responder à pergunta mais específica:

updatedb -l 0 -U /home -o /home/user/home_dbfile
updatedb -l 0 -U /data -o /home/user/data_dbfile
locate -d /home/user/home_dbfile -d /home/user/data_dbfile Dylan
    
por Janghou 10.12.2013 / 13:44
18

Edite o arquivo /etc/updatedb.conf

Configure PRUNEPATHS com os diretórios que você NÃO deseja pesquisar

PRUNEPATHS="/tmp /var/spool /media"

PRUNEPATHS : Uma lista separada por espaço em branco de nomes de caminho de diretórios que não devem ser verificados pelo updatedb. Cada nome de caminho deve estar exatamente na forma em que o diretório seria relatado por locate. Por padrão, nenhum caminho é ignorado.

Observe que todas as informações de configuração acima também podem ser alteradas ou atualizadas por meio das opções da linha de comando para o utilitário updatedb .

    
por LnxSlck 06.07.2012 / 15:38
1

Encontrei outra coisa que você pode tentar:

  1. QuickSearch - "Então, meu SearchTool usa uma maneira diferente: ele usa o comando 'ls' para listar o conteúdo da pasta pesquisada, e então faz a pesquisa em Dessa forma, a velocidade de busca é muito rápida (exceto pela primeira vez que tem que fazer a saída 'ls'). "

Não tenho muita certeza sobre indexação.

  1. Use a ferramenta tracker-gui
  2. Solução bastante manca sudo find "coloque seus diretórios de pesquisa aqui" > files.list grep 'filename' files.list
por LnxSlck 06.07.2012 / 16:16