定位未找到应找到的所有文件

定位未找到应找到的所有文件

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

相关内容