web-dev-qa-db-ja.com

変更されたファイルのみをコピーするには、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/"のすべてを削除してからコピーする代わりに、"$my_dir/WebstormProjects/"のファイルが新しい場合にのみ、"$HOME/WebstormProjects/"のファイルを上書きするようにrsyncを使用することを検討しています。 。だからこのようなもの:

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はソースから宛先に新しいファイルまたは変更されたファイルのみをコピーします...

相対ファイルパスを比較することでこれを行うと思いますか?同じパス/名前のファイルは同じと見なされますか?

2
Alexander Mills

これはrsyncのデフォルトの動作です。ファイルサイズと最終変更サイズをチェックします。

代わりにチェックサムを使用する場合は、-cまたは--checksumオプション(同じ効果)。マニュアルページは here であり、オプションについて説明しています。また、--size-only

3
alexmherrmann