如何确定目录是否启用了APFS快速目录大小调整?


10

Apple 文件系统指南中的Apple技术文档描述了某些目录/tmp不是快速目录大小调整功能的理想选择。

快速目录大小调整是通过在添加和删除内容时预先计算目录的大小来实现的。因此,它最适合包含许多文件且流失相对较小的目录。例如,用户的Documents文件夹是快速调整目录大小的不错选择,而/tmp目录则不是。

如何确定给定目录是否启用了此功能,所以我可以选择在哪里进行速度密集的“搅动”工作,在何处不进行此类工作?

Answers:


1

现在我们知道,自从苹果最近发布了有关APFS的更多技术细节以来,先前的答案有些偏离。实际上,可以在每个目录的基础上启用快速目录大小调整,并且可以由用户检查(尽管不容易)。仅当目录为空时才可以启用它,并且还必须为每个新的子目录打开它。详细信息:https : //developer.apple.com/support/apple-file-system/Apple-File-System-Reference.pdf

相关报价

您不能直接在包含文件或其他目录的目录上启用快速目录大小调整;相反,您必须首先创建一个新目录,在其上启用快速目录大小调整,然后将现有目录的内容移至新目录

现在我们知道您必须设置此标志才能启用FDS

INODE_MAINTAIN_DIR_STATS:索引节点跟踪其所有子节点的大小

尽管我仍然不清楚macOS是否在适当的地方自动打开了此标志,但是一些初步的试验使我认为它尚未被使用。我认为它将在即将到来的macOS更新中使用。


0

简短答案

FDS是APFS格式化驱动器中文件系统的基本部分。用户不需要启用/禁用它,也不能将其应用于一个目录,而不能应用于另一个目录。

由于是“全能”方案,因此没有任何终端命令来确定目录是否启用了FDS。相反,如果将驱动器格式化为APFS格式,则会启用FDS。如果未以APFS格式格式化,则FDS不可用。

长答案

不幸的是,您从Apple技术文档中引用的信息措辞不当,因此是您提出问题的原因。

如果驱动器以APFS格式格式化,则将快速应用目录大小快速调整。用户不能在每个目录中启用/禁用FDS。

因此,用户也无法根据目录确定目录的状态。也就是说,如果驱动器格式化为APFS,则所有目录都启用了FDS

造成混淆的地方(在这种情况下,也是可以理解的)是Apple文档中词语的错误选择以及造成的歧义。该信息试图传达的信息是,用户将从那些文件较多但变化不大的目录(例如,用户的Documents文件夹)中的FDS中受益最多,而他们将不会从FDS目录中获得太多收益(如果有)像/tmp文件夹。

顺便说一句,您引用的文档已由“ 关于Apple文件系统”页面代替。本页上唯一提到的FDS如下:

Apple File System提供了改进的文件系统基础以及一些新功能,包括克隆,快照,空间共享,快速目录大小调整,原子安全保存和稀疏文件。

有没有试图进一步解释什么 FDS手段,超越了事实,这是一个基本的(阅读下面的)功能。但是,如果您对某些背景感兴趣:

在HFS +中复杂而深入的目录结构中,我们熟悉文件系统可能花费在计算文件系统树大小上的时间。这是系统挂起的常见原因之一。苹果公司通过APFS引入了快速目录大小调整(FDS),文件系统可以在其中快速计算目录层次结构使用的空间,以解决此问题。

资料来源:汉森(KH),哈坦(Toolan),F。,解码APFS文件系统,数字调查(2017)


如果驱动器格式化为APFS,则所有目录都启用了FDS,这是真的吗?此注释表明它是基于每个索引设置的,并且您必须首先创建这样的目录,然后将项目移入其中。当然,在我自己的系统上,文件夹大小似乎在Finder中根本无法很快显示(这是一个升级的系统;不是全新安装)。
Wincent

可悲的是,这是完全错误的,应该更新。请参阅文档j_inode_flags苹果文件系统参考。目录索引节点数据结构确实允许在每个目录实例上启用或禁用此功能。那里没有任何内容说明此答案中所述的所有目录都已自动启用此功能。
Feuermurmel

此评论是重复的,有点屈尊,完全错误。问题中的引号不是“用词不好”;他们显然与此答案不相容。
Matthias Winkelmann
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.