如何使用 Python 克隆文件?

How to clone files with Python?

在 macOS 上使用 bash 我可以使用 cp -c 创建 COW 文件克隆。是否有提供相同功能的 Python 库? shutil的copy函数好像没有提到克隆

在 APFS 克隆上:https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/APFS_Guide/Features/Features.html

在 BSD 克隆文件上:http://www.manpagez.com/man/2/clonefile/

好的,我将其标记为重复但不知道复制和克隆之间的区别。

这是在 Python 中尽可能详细地复制文件的说明的位置: https://docs.python.org/3.6/library/shutil.html

它以以下警告开头: 警告即使是更高级别的文件复制函数(shutil.copy()、shutil.copy2())也无法复制所有文件元数据。

如果您想要OS 克隆文件,则需要运行 系统调用。该系统调用将需要 OS 特定,并且将从这个问题中提取调用: Calling an external command in Python

所以,查看复制库,看看是否可以获得足够的详细信息,以及是否不能使用系统特定的调用。

Python 标准库不支持克隆文件。

要在子进程中使用 cp -c 克隆文件,您可以使用此函数:

def clonefile(source, dest):
    subprocess.check_output(["cp", "-c", source, dest])