Answers:
哈维尔·里维拉(Javier Rivera)的答案行得通,但是rsync检查并比较所有文件校验和需要花费很长时间。我发现使用以下选项对我来说更好:
rsync -rtv --modify-window=1 /source /dest
该--modify-window=1
开关允许时间戳的偏差为±1s。启用此选项后,时间戳比较将更加宽松,并查看NTFS / FAT与Unix文件系统之间的微小时间差异。
来源(ger): http
PS:请注意,DST每年会导致两次完整文件传输。有关更多详细信息和可能的解决方案,请参见此处。
modify-window=2
因为=1
仍会复制所有文件。从NTFS复制到FAT32。之后就可以了。
--size-only
标志以跳过大小匹配的文件
FAT32中的时间戳与Unix中的时间戳有很大不同,无法依靠它们来检查文件更改,您还应该使用-c开关,它将强制rsync比较所有文件以检测更改,而不是依靠时间戳。可以,但是速度较慢。
最后,命令中有几个选项无法与FAT32文件系统一起使用。
就像激烈的评论一样,无效的选项不会伤害您,它们只会无济于事。但是您必须添加-c开关。
这个:
rsync -vrc source dest
应该可以工作(至少在我的计算机上可以工作)。
在OSX下,我遇到了类似的问题,而Glutanamate的回答没有帮助。有些文件相差一个小时;这可能是因为我倾向于相对频繁地跨越时区。其他文件关闭一天甚至一个月。我不确定为什么会这样。对某些时间戳差异很大的文件进行校验和表明,它们确实是相同的。
在任何情况下,该--size-only
选项都rsync
可以忽略我,它告诉我忽略时间戳记。 -c
/ --checksum
(如Javier所述)也可以,但是需要更长的时间。我计时了一下,花了大约一分钟的时间在我正在使用的子目录中比较GB的校验和。当然,发生这种情况的速度将取决于系统中最慢的驱动器。就我而言,这就是手机中的SD卡。但是,那是在我已经进行了一些文件操作(包括校验和)之后,因此许多文件可能已经被复制到RAM缓存中。
您还应该避免使用流行的-a选项。我对FAT32的建议是
rsync -vrc --delete --progress --no-p source destination
--no-p:不允许
--delete:删除目的地中不匹配的文件和文件夹(如果您确实要这么做)
--progress:显示传输过程中的进度。这对于大文件很有用。
-vrc
,还有我的支持-vrcz
您正在使用太多标志(-vrlptgD)。请记住,rsync是一个Linux实用程序,不能与Fat32和NTFS有效配合使用。
您必须寻找技巧才能使用它。
尝试:
rsync -rvh --size-only --progress --delete /path/to/ext4/ /path/to/fat32/
更多信息在这里
--iconv
从源Linux到dest MacOS时,我还发现该选项