有了macOS高中,就有了一个新的文件系统: APFS。
此文件系统支持对文件的克隆操作:没有存储上的数据重复。
cp命令有一个标志(-c),它允许在终端(shell)中进行克隆。
但之后我找不到识别这些克隆文件的方法。
有人知道如何用shell命令或存在的命令中的标志来识别克隆的文件,比如ls。
发布于 2020-12-10 19:29:51
三年零两个月后..。因为这里有一个关于堆叠溢出的问题,所以我得到了很多的分数。
因此,昨天我决定重新讨论这个话题:)。
使用fcntl和F_LOG2PHYS可以检查文件是否使用相同的物理块。
因此,我使用这个想法制作了一个实用程序,并将其放在github (https://github.com/dyorgio/apfs-clone-checker)上。
这只是第一个发布的家伙,但我希望社区可以改进它。
现在,使用克隆APFS功能删除重复文件的好工具可能会诞生。>:)
发布于 2017-10-20 08:26:59
您所使用的命令不是的一个特性。CP -c命令调用一个名为"clonefile“的函数,该函数自2015年以来一直是bsd的一部分(s.man-Page)。
http://www.manpagez.com/man/2/clonefile/
因此,例如,如果您克隆一个文件,您可以从原始文件中更改属性,克隆人可以有不同的属性。
我认为,您正在搜索的功能是在每个副本中构建和编写。你可以看到不同的,如果你用时间机器做一个克隆。
A今天还没有找到每个终端的突击队,以显示这种差异,但是clonefile命令因此不是正确的函数。
目前唯一已知的在克隆中显示更改属性的方法是Apple Time Machine备份解决方案。
这是快照解决方案。关于这一点,在这个Apple Dev支持案例中:
发布于 2019-08-26 05:42:21
我认为这是APFS的一个内部专有特性,您不应该使用它。在我看来,这是一个相对无用的特征。如果您想拥有两个相同的文件,并使用标准API,请尝试硬链接或软链接,否则苹果别名。
https://stackoverflow.com/questions/46417747
复制相似问题