有一个文件位于/user/share/jogl.jar
。
我在用locate jogl.jar
但它不起作用。为什么?
答案1
从手册页中:
locate reads one or more databases prepared by updatedb(8) and writes
file names matching at least one of the PATTERNs to standard output,
one per line.
以 root 身份运行updatedb
并重试。它应该可以工作。
或者,您可以使用find
或find | grep
,它不使用数据库(因此速度要慢得多)。
答案2
你说的“它不起作用”是什么意思?如果你不熟悉locate
,我想到两个主要问题,都与依赖locate
数据库和不是直接在文件系统上。
它没有显示任何结果:在这种情况下,你可能需要通过从终端
locate
运行来更新数据库updatedb
返回的结果太多了:再次
locate
使用数据库,而不是当前目录(与其他几个常见的 unix 命令相反),因此如果您尝试somestuff
从home
目录中定位以查找somestuff
它可能包含的所有内容,它将不起作用。您必须使用完整路径来运行它:locate ~/*somestuff
答案3
由于某种原因,Ubuntu 没有将我作为用户添加到允许读取默认数据库的组中。解决方案是:
sudo usermod -a -G mlocate YOUR_USER_NAME
该信息是通过阅读man updatedb
和检查中的默认数据库的权限了解到的/var/lib/mlocate/mlocate.db
。