Ser*_*erg 4 file-copy deduplication hfs+
cp --reflink=auto
显示以下 MacOS 输出:
cp: 非法选项 -- --
HFS 是否支持写时复制或重复数据删除?如何使用 HFS COW 大文件?
小智 5
Apple 新的 APFS 文件系统支持写时复制;CoW 在可用的 Finder 复制操作中以及在cp -c
命令行上使用时自动启用。
不幸的是,cp -c
等价于cp --reflink=always
(not auto
),并且在写时复制不可能时失败
cp: somefile: clonefile failed: Operation not supported
Run Code Online (Sandbox Code Playgroud)
我不知道获得auto
行为的方法。你可以让一个shell脚本或功能与自动回退一拉
cpclone() { cp -c "$@" || cp "$@"; }
Run Code Online (Sandbox Code Playgroud)
但是很难让它在所有边缘情况下都完全可靠。
2021 年 11 月更新:由于即将到来的 coreutils 更改,该答案已过时。自25725f9 (coreutils 9.0)以来,reflink=auto 一直是默认值。APFS 克隆在树中提交为5e36c0c,并且应该出现在 coreutils 9.1 中。
原始发布于 2019 年 11 月:我为 GNU coreutils编写了一个补丁(邮件列表--reflink
),该补丁支持macOS > 10.12。是的,--reflink=auto
会起作用,至少根据我的时间测量。
以下是两种使用方法:
./bootstrap
,然后运行通常的./configure -C
和make -j12 install
.您可以从自制公式中获取一堆可能的参数来使用。由于更改仅对cp
且仅有用mv
,因此您可以选择仅替换这两个二进制文件。(mv
使用 reflink 对于子模块很有用。)
有一个相关的补丁默认启用 reflink=autocp
和install
。如果您总是忘记添加该选项或希望ginstall
在 Makefile 中速度更快,请尝试一下。
归档时间: |
|
查看次数: |
1221 次 |
最近记录: |