使用 rsync 仅复制已更改的文件

使用 rsync 仅复制已更改的文件

现在我有这些命令:

my_dir="$HOME/foo/bar";

rm -rf "$my_dir/WebstormProjects/";

rsync -r --exclude=".git" --exclude="node_modules" "$HOME/WebstormProjects/" "$my_dir/WebstormProjects/"

"$my_dir/WebstormProjects/"我希望使用这样的方式,而不是删除所有内容然后复制过来,只有在文件较新时rsync才会覆盖文件。所以像这样:"$my_dir/WebstormProjects/""$HOME/WebstormProjects/"

my_dir="$HOME/foo/bar";

rsync -r --newer --exclude=".git" --exclude="node_modules" "$HOME/WebstormProjects/" "$my_dir/WebstormProjects/"

是否可以仅复制比目标文件新的文件?

我读了一些书: https://www.howtoing.com/sync-new-changed-modified-files-rsync-linux/

它说:

默认情况下,rsync 仅将新的或更改的文件从源复制到目标...

我认为它是通过比较相对文件路径来实现的?具有相同路径/名称的文件被认为是相同的吗?

答案1

这是 rsync 的默认行为。它检查文件大小和上次修改大小。

如果您希望它使用校验和,请使用-c--checksum选项(效果相同)。手册页是这里并描述了该选项,也可能是感兴趣的--size-only

相关内容