Como faço para o mlocate indexar apenas determinados diretórios?


23

Eu gostaria de usar o mlocate no meu servidor Ubuntu, mas apenas para indexar certos diretórios (por exemplo , /homee /data, mas nem tudo abaixo /). 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 algum utilitário semelhante que faça o que eu quero? (nota: ele deve manter um índice como mlocate, portanto, findnão é aceitável, por exemplo) Obrigado.

Respostas:


16

Você pode usar a opção -U (--database-root PATH)

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

-o grava no arquivo de saída

-l 0 faz com que você possa lê-lo, caso contrário, ele é acessível apenas 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, basta criar dois arquivos de banco de dados e usar o local com duas opções de caminho de banco de dados como este:

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

Voto positivo, pois esta é uma resposta parcial. No entanto, ele permite apenas a inclusão de um caminho na lista de permissões. Minha pergunta foi especificamente sobre como colocar em lista branca mais de um caminho.
Andrew Ferrier

1
Melhorou a resposta e para facilitar o manuseio Sugiro criar um alias
Janghou

boa resposta! Não sabia que era possível pesquisar em dois bancos de dados em paralelo, obrigado pelo esclarecimento. Vou marcar como aceito, a menos que uma resposta melhor chegue!
Andrew Ferrier 12/12

É updatedb -l 0 -U /home/user/musicrecursivo? Não parece estar no meu caso
Gaia

22

Edite o arquivo /etc/updatedb.conf

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

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

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

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


Não, é exatamente o oposto do que eu quero. Isso indexará tudo, exceto esses diretórios.
Andrew Ferrier

Você pode definir PRUNEPATHS com tudo, exceto seus diretórios. Dessa forma, ele somente examinará seus diretórios.
LnxSlck

OK, obrigado pela edição de esclarecimento. Isso é um pouco impraticável, porque, à medida que adiciono subdiretórios aos diretórios que quero indexar, devo lembrar de adicioná-los ao PRUNEPATHS. No entanto, isso funcionaria. Obrigado pela sugestão.
Andrew Ferrier

Sim, eu sei, mas não consigo encontrar muita informação sobre o mlocate para fazer isso. Você não pode usar algo como encontrar?
LnxSlck

Não, eu tenho muitos dados, por isso é importante que sejam indexados. Esclareceu em questão.
Andrew Ferrier

1

Encontrei outra coisa que você poderia tentar:

  1. Pesquisa Rápida - "Portanto, meu SearchTool usa uma maneira diferente: ele usa o comando 'ls' para listar o conteúdo da pasta pesquisada e, em seguida, faz a pesquisa nessa saída. Dessa forma, a velocidade da pesquisa é muito rápida (exceto pela primeira vez que é necessário 'ls' output). "

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

  1. Use o rastreador de ferramenta -gui
  2. Pretty lame solution sudo find "coloque seus diretórios de pesquisa aqui"> files.list grep 'filename' files.list

Tente não adicionar várias respostas. Se necessário, edite a resposta existente e inclua mais informações. Obrigado.
jokerdino

Sim, eu vou fazer isso
LnxSlck
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.