我一直在测试rsync,并在将文件和文件夹从分区复制到另一个分区时发现了一个奇怪的错误:
如果我这样做:
rsync -avE --delete '/Volumes/disk1/origin/' '/Volumes/disk2/destination/'
它正确复制/同步。
下次我使用rsync进行相同的同步时,文件中的某些修改日期(不是文件夹!)会变得不正确(更改为当前日期和时间),即使我已经使用了 -a
在里面 rsync
应该保留它的命令。
最奇怪的是,如果我重做它,那么错误的日期现在是正确的,这意味着rsync每隔一次运行就会改变修改日期,当它改变日期时,它始终是相同的文件,我没有看到除了影响文件和相同文件之外的模式。
我做错了什么,可以修复吗?
这是使用OS X 10.9.5,使用终端rsync 2.6.9
1
这两卷上的文件系统是什么? 脂肪 有一个臭名昭着的设计问题,修改时间只能以2秒的分辨率表示。 rsync并不总能很好地处理这个问题。
—
Chris Harrington
@ChrisHarrington都使用Mac OS Extended(Journaled),并使用标准的GUID分区表。
—
jackJoe
@Mark我怀疑rsync可能需要更新,我已经为测试做了更新(更新到3.1.0版本),但创建日期(在这个新版本的情况下)不会保留...所以部分问题解决了,现在我有一个新问题。也许我需要使用不同的选项而不仅仅是
—
jackJoe
-avE
?
@jackJoe创建日期总是在文件获取新的inode时更改(嗯,hfs中的目录节点ID)。我假设您正在运行64位内核,在这种情况下应保留生育时间。你自己编译rsync了吗?
—
fd0