我已经写了:
locate Origin90SR2DVD.iso
我收到了该文件所在的路径:
/home/david/Origin90SR2DVD.iso
然后我写道:
cd /home/david
我跑了:
ls -lrth
我找不到该Origin90SR2DVD.iso
文件。
为什么文件不在该路径下?
答案1
您可能在上次(或您自己)更新( )的数据库文件时将Origin90SR2DVD.iso
文件放在该位置。至于在搜索时仅针对数据库文件中的文件名(这就是它快速的原因),您可以考虑它的技术而不是/home/david
locate
/var/lib/mlocate/mlocate.db
cron
locate
居住。
虽然locate
显示了文件的位置,但文件很可能并不存在于那里(可能已被删除或移动到其他地方)。
有两种方法可以确定发生了什么:
您可以通过然后运行相同的命令来更新
locate
数据库文件。sudo updatedb
locate
或者,你可以
find
使用居住搜索。要以递归方式查找主目录中的文件:find ~ -type f -iname 'Origin90SR2DVD.iso' -print -o -path ~/.gvfs -prune
-path ~/.gvfs -prune
(感谢 Eliah Kagan)用于避免我们~/.gvfs
在搜索时进入目录。否则,我们将收到一条令人分心的权限被拒绝消息,因为该目录归 root 所有。您可以通过删除 来忽略此消息(并查看消息)-print -o -path ~/.gvfs -prune
。您还可以在文件系统层次结构中查找所有可能的位置。这里我考虑了几个可以包含该文件的位置,如果您的文件出现在任何其他目录下,那就很不寻常了。
sudo find /home /root /opt /usr/local /mnt -type f -iname 'Origin90SR2DVD.iso'
编辑 :
locate
的数据库cron
每天由 更新。在我的系统中,它每天早上 6:25 运行(请在 上查看您的数据库/etc/crontab
)。
实际上anacron
将运行该cron
作业以确保如果当时计算机处于关闭状态,则该作业将在下次计算机打开后运行。如果anacron
不可用,则将仅在所述时间run-parts
执行目录中的文件(包括mlocate
) 。/etc/cron.daily
答案2
运行sudo updatedb
以确保你的 mlocate 数据库是最新的。