use*_*073 3 bash search-indexing macos
关于mdutil和索引的两个问题:
-E选择?在我看来,它的意思是“重新索引”,但是以下 bash 命令对我来说没有意义mdutil -E -i off /。mdutil在系统中的某个任意文件夹上运行,它会递归索引所有子文件夹,而系统上没有其他任何内容吗?我有大致的想法,mdutil但我man mdutil对-E.
作为mdutil状态的手册页;大胆的强调是我的:
该
mdutil命令对于管理已安装卷的元数据存储很有用。
所以当你问:
您可以
mdutil在系统中的某个任意文件夹上运行,它会递归索引所有子文件夹,而系统上没有其他任何内容吗?
不,因为mdutil它不是基于文件夹的元数据存储工具,而是基于卷的元数据存储工具。
那你说:
有什么
-E选择?在我看来,它的意思是“重新索引”,但是以下 bash 命令对我来说没有意义mdutil -E -i off /。
-E手册页中的选项描述为:
此标志将导致指定卷的每个本地存储被擦除。如果合适,这些商店将被重建。
因此,该-E选项只是擦除指定卷上的元数据存储。在这个例子中:
mdutil -E -i off /
Run Code Online (Sandbox Code Playgroud)
该命令将擦除(通过-E选项)安装在根目录 ( /)的卷上的元数据存储,然后关闭安装在根目录 ( )的卷上的索引状态(通过-i off选项)/。
您的困惑可能来自这样一个事实:/它看起来不像一个明确的卷名,而是一个路径。但这/确实表明您正在运行该命令的启动操作系统的根卷。
例如,让我们看看ls -la /Volumes/示例 Mac OS X 系统上的输出。它可能看起来像这样:
drwxrwxrwt@ 7 root admin 238 Sep 3 19:48 .
drwxr-xr-x 29 root wheel 1054 Sep 3 01:40 ..
-rw-r--r--@ 1 jack admin 6148 May 18 18:57 .DS_Store
lrwxr-xr-x 1 root admin 1 Sep 3 10:17 Hard Drive -> /
Run Code Online (Sandbox Code Playgroud)
请注意,Hard Drive它实际上不是“真正的”挂载卷,而是指向/文件系统上挂载卷的符号链接。真正挂载的卷名是/.
因此,知道/并且Hard Drive两者都使用全/Volumes/名指向同一个安装的卷这个命令:
mdutil -E -i off /Volumes/Hard\ Drive/
Run Code Online (Sandbox Code Playgroud)
在相同的 Mac OS X 系统上,实际上是与此相同的命令:
mdutil -E -i off /
Run Code Online (Sandbox Code Playgroud)