locate gmp.h
我按提示输入并得到以下内容:
/usr/src/linux-headers-3.13.0-24/include/linux/igmp.h
/usr/src/linux-headers-3.13.0-24/include/uapi/linux/igmp.h
/usr/src/linux-headers-3.13.0-24-generic/include/linux/igmp.h
但当我这样做时,ls /usr/include/x86-64-linux-gnu/
我看到的是:
a.out.h asm bits c++ fpu_control.h gmp.h gnu ieee754.h sys
为啥没有locate
定位/usr/include/x86-64-linux-gnu/gmp.h
?
编辑:ls -l /usr/include/x64-64-linux-gnu/gmp.h
这样说:
ls: cannot access /usr/include/x64-64-linux-gnu/gmp.h: No such file or diretory
为什么明明说不ls /usr/include/x86-64-linux-gnu/
存在却又说存在呢ls -l /usr/include/x64-64-linux-gnu/gmp.h
?
截图:
答案1
locate
未在文件系统上查找文件。而是在包含所有文件的数据库中进行搜索。
该数据库通常每天更新一次,一般在凌晨 3 点左右。
您可以使用以下命令手动更新它updatedb
(或者如果没有使用足够的凭据登录:)sudo updatedb
。有关更多信息,请参阅man updatedb
。
根据您包含 /usr/src/linux-headers-3 的帖子,我假设您在 Linux 发行版上运行此命令。在其他操作系统上,locate 命令的工作方式可能略有不同。例如,在 FreeBSD 上,手动更新locate 数据库的命令是运行,/usr/libexec/locate.updatedb
该数据库每周从 更新/etc/periodic/weekly/310.locate
。