“locate”命令中显示一个文件,但该文件并不存在。为什么?

“locate”命令中显示一个文件,但该文件并不存在。为什么?

我遇到了一个奇怪的问题。
我目前正在修复 Backtrack 5(基于 Ubuntu)上的 Flash 安装。我真的需要让 Flash 工作,所以我在 Google 上查找。在某个论坛上,一个人说在这个发行版(最终基于 Debian)上,Flash 安装到 Iceweasel-flashplugin 中,所以我们需要将那里的路径从 Iceweasel 更改为 Firefox。(或者告诉 Firefox 在那里寻找插件,我不确定)。

但奇怪的是,使用locate命令时,我可以找到一些文件及其路径。在此路径上尝试cat命令时,结果显示“没有文件或目录”,即使使用ls -la,也没有结果。我只有两个以i开头的文件。

有人知道为什么会发生这种情况吗?有办法修复此 Flash 安装吗?

外壳截图:

shell 截图

答案1

locate使用名为 的数据库locatedb。它通常由系统 cron 作业更新。如果数据库尚未更新,它将显示不存在或新的文件/目录。您可以使用命令强制更新updatedb。请参阅此链接等等。

的手册页locate明确指出 -

   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.

来源

答案2

定位基于数据库,该数据库通常通过 cron 每天更新一次。强制更新:运行updatedb,您locate iceweasel将返回最新结果。

相关内容