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

10

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.

    
por PatrickCUDO 08.02.2012 / 21:22

2 respostas

9

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 comando updatedb . Veja este link entre outros.

Manpage de 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

    
por 08.02.2012 / 21:42
4

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

    
por 08.02.2012 / 21:42