如何限制Rsync的更新时间戳

11
rsync -av --size-only --include="*/" --include="*.jpeg" --exclude="*" ~/alg/temperature/ ~/alg/tmp/

我使用上述命令同步一些文件,如果文件大小相同,则不想更新时间戳。

--size-only选项只能同步文件大小发生变化的文件。

但是那些大小没有改变的文件将被“touch”并更新时间戳,这不是我想要的。

我该怎么办?

1个回答

13

-a选项相当于-rlptgoD。您需要删除-t。 -t告诉rsync随着文件一起传输修改时间并在远程系统上更新它们。 您可以尝试使用-c skip based on checksum, not mod-time & size。这会更慢,但应该适合您的需求。 因此,您的行可以是(通过展开a并将t替换为c): rsync -rlpcgoDv --include="*/" --include="*.jpeg" --exclude="*" ~/alg/temperature/ ~/alg/tmp/


rsync -rlvi 将所有文件的修改时间戳设置为当前时间。我认为目标是根据提问者说的文件将被“触摸并更新时间戳”而不改变它们。 - adfaklsdjf
@adfaklsdjf - 使用时间戳是默认行为。因此,在您的示例中未指定 -c 将会触及文件。 - Mike
如果rsync能够使用两端的修改时间戳来确定需要传输的内容,而不会在任一端修改这些时间戳,那将是很好的。也许有一些技术上的原因导致无法实现,但我想不出其中的任何一个。谢谢。 - adfaklsdjf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接