A maioria das distribuições será enviada com as ferramentas locate
de findutils em um pacote junto com um script chamado de crontab que executará updatedb como usuário nobody. Você só precisa encontrar este script (por exemplo: no Debian 9 está em /etc/cron.daily/locate
) e adaptá-lo para remover o manuseio do usuário, bem como alterar o arquivo do banco de dados. Então, no final, uma forma básica poderia resumir-se a:
updatedb --output="$HOME/locatedb" --localpaths="$HOME"
Isso provavelmente deve ser colocado em um crontab.
E o uso seria então:
locate --database="$HOME/locatedb" somefilepattern
você terá que adicionar mais opções se você estiver usando montagens de rede e quiser indexá-las, etc.
Se você tiver acesso root em seu sistema e refletir sobre possíveis problemas de segurança / privacidade, poderá simplificar sua vida e usar o mlocate
a> ferramentas provavelmente disponíveis na maioria das distribuições, que se comportam exatamente como as ferramentas de localização, exceto que indexam tudo como raiz (nunca deixando de indexar os diretórios ilegíveis do mundo) para um banco de dados não acessível diretamente pelo usuário, mas usam um setuid / setgid locate comando que irá lê-lo e permitirá exibir resultados para um determinado usuário somente se este usuário puder acessar os resultados em primeiro lugar.