rsync -av --size-only --include="*/" --include="*.jpeg" --exclude="*" ~/alg/temperature/ ~/alg/tmp/
我使用上述命令同步一些文件,如果文件大小相同,则不想更新时间戳。
--size-only选项只能同步文件大小发生变化的文件。
但是那些大小没有改变的文件将被“touch”并更新时间戳,这不是我想要的。
我该怎么办?
rsync -av --size-only --include="*/" --include="*.jpeg" --exclude="*" ~/alg/temperature/ ~/alg/tmp/
我使用上述命令同步一些文件,如果文件大小相同,则不想更新时间戳。
--size-only选项只能同步文件大小发生变化的文件。
但是那些大小没有改变的文件将被“touch”并更新时间戳,这不是我想要的。
我该怎么办?
-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