Questão Um arquivo é exibido no comando “locate”, mas não existe. Por quê?


Estou tendo um problema estranho.
No momento, estou consertando uma instalação flash no Backtrack 5 (baseado no Ubuntu). Eu realmente preciso de flash para o trabalho, então eu olhei para cima no google. Em alguma placa, um cara disse que nesta distribuição (que é finalmente baseada no Debian) o flash instala o iceweasel-flashplugin, então precisamos mudar o caminho para lá do iceweasel para o firefox. (Ou diga ao firefox para procurar o plugin lá embaixo, não tenho certeza).

Mas aqui vem a parte estranha. Ao usar o comando locate, posso encontrar algum arquivo e o caminho para ele. Tentando o comando cat neste exato caminho não dá "nenhum arquivo ou diretório", e mesmo com ls -la nada vem. Eu tenho apenas dois arquivos começando com i.

Alguém sabe por que isso está acontecendo? E haveria uma maneira de corrigir essa instalação flash?
Muito obrigado antecipadamente.
shell screenshot


10


origem




Respostas:


locate usa um banco de dados chamado locatedb. Normalmente é atualizado por tarefas agendadas do sistema. Se o banco de dados não tiver sido atualizado, ele mostrará arquivos / diretórios inexistentes ou novos. você pode forçar uma atualização com o updatedb comando. Vejo esse link entre outros.

Manpage of locate diz claramente -

   locate  reads  one or more databases prepared by updatedb and writes
   file names matching at least one of the PATTERNs  to  standard  output,
   one per line.

   By default, locate does not check whether files found in database still
   exist;  locate  can  never  report  files created after the most recent
   update of the relevant database.

Fonte


9



Ok, eu deveria furar as regras .. RTFM! Obrigado pela explicação. - PatrickCUDO
Sem problemas. :-) - Bibhas


O locate é baseado em um banco de dados que geralmente é atualizado uma vez por dia via cron. Forçar uma atualização: executar updatedb e seu locate iceweasel retornará resultados atualizados.


4