使用“mdutil -E -i off /”了解 Mac OS X 索引

use*_*073 3 bash search-indexing macos

关于mdutil和索引的两个问题:

  • 有什么-E选择?在我看来,它的意思是“重新索引”,但是以下 bash 命令对我来说没有意义mdutil -E -i off /
  • 您可以mdutil在系统中的某个任意文件夹上运行,它会递归索引所有子文件夹,而系统上没有其他任何内容吗?

我有大致的想法,mdutil但我man mdutil-E.

Gia*_*968 6

作为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)