Rsync 临时文件扩展名

Rsync 临时文件扩展名

如果我不使用 --inplace 选项,我很难找到 Rsync 如何“选择”复制文件时创建的临时文件的扩展名。

示例:我想使用 Rsync复制sourceDirectory/myFile.txt到其中。targetDirectory/

复制myFile.txttargetDirectory/Rsync 时将创建一个.myFile.txt.W4zvLi 名为targetDirectory/.

然后Rsync将重命名.myFile.txt.W4zvLimyFile.txt.

问题是为什么 Rsync 如何使用该W4zvLi扩展以及为什么每次执行 Rsync 程序时它似乎都会发生变化?

答案1

rsync 使用mktemp(3)POSIX 函数生成唯一的临时文件名。您将模板字符串传递给该mktemp函数,它将返回一个文件名,其中X模板中的任何字符都替换为随机字符。

特别是,rsync传递.XXXXXXmktemp.如果您想从命令行尝试它,您可以使用二进制mktemp(1)文件,如下所示:

mktemp -u "/tmp/foo.XXXXXX"

答案2

男人同步:

Beginning with rsync 3.1.1, the  temp-file  names  inside
              the specified DIR will not be prefixed with an extra dot (though
              they will still have a random suffix added).

相关内容