在 Mac OS 中高效地编目统计信息

在 Mac OS 中高效地编目统计信息

我想建立一个有关 Mac OS 上的系统和用户文件的信息数据库,也许是这样的:

time sudo find / -type f -or -type d  -exec stat -f "{}||%p||%u||%g" "{}" \;

在我的其中一台 Linux VM(不是托管在我的笔记本电脑上)上,简单sudo find /操作非常快,sudo find / -exec stat ...大约需要 2.5 分钟。在我的配备 SSD 驱动器的 MacBook Pro 上,简单操作sudo find /大约需要 2 分钟,而sudo find / -exec stat ...大约需要 12 分钟。

我有一台没有 SSD 驱动器的旧 Mac,我定期发现自己会终止防病毒软件启动的查找进程,因为它们会导致驱动器混乱并且系统响应变慢,如果可能的话,我想避免这种性能下降。

有没有一种高效、不显眼的方式来获取 MacOS X 系统上大多数/所有系统和用户文件的统计信息?也许我看到的性能差异主要归因于硬件差异?

答案1

当我在笔记本电脑上运行此程序时,我注意到 opendirectoryd 的 CPU 使用率很高。看起来 stat 正在访问 Open Directory 以返回用户和组信息。在您的 Linux 机器上,您可能使用 /etc/passwd 来处理所有这些内容,因此速度会快得多。

相关内容