Por padrão find
procura por seu padrão definido dentro de todos os arquivos e subdiretórios especificados em tempo real, então, mesmo após a pesquisa ter sido iniciada, você pode criar um novo arquivo em algum lugar e se find
não tiver pesquisado lugar ainda vai encontrar esse arquivo para você.
por outro lado, como você sabe, o locate usa um banco de dados armazenado em cache para acelerar esse processo, mas armazena apenas alguns diretórios específicos, você pode usar o arquivo /etc/updatedb.conf
para definir alguns diretórios a serem excluídos do cache.
atualizar os dados com sudo
em uma máquina com vários usuários é uma causa de risco de segurança, pois acabamos em um banco de dados que contém todos os dados de usuários e todos podem procurá-los.
Para mim, sudo updatedb
funciona bem, por isso, verifique /etc/updatedb.conf
para ver se alguma coisa foi excluída em sua máquina.
Se você quiser criar um banco de dados apenas para seu usuário, você pode usar:
updatedb -l 0 --output=/home/username/.mydb.db
então, para pesquisar, use:
locate -d ~/.mydb.db search-pattern
E use aliases para torná-lo mais conveniente:
alias lupdatedb="updatedb -l 0 --output=/home/username/.mydb.db"
alias llocate="locate -d ~/.mydb.db"