Rsync

使用 rsync 僅複製已更改的文件

  • August 14, 2018

現在我有這些命令:

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.tecmint.com/sync-new-changed-modified-files-rsync-linux/

它說:

預設情況下,rsync 僅將新的或更改的文件從源複製到目標…

我假設它通過比較相對文件路徑來做到這一點?具有相同路徑/名稱的文件被認為是相同的?

這是 rsync 預設行為。它檢查文件大小和最後修改大小。

如果您希望它改用校驗和,請使用-cor--checksum選項(效果相同)。手冊頁在這裡並描述了選項,也可能是--size-only

引用自:https://unix.stackexchange.com/questions/462394