現在、次のコマンドがあります。
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はソースから宛先に新しいファイルまたは変更されたファイルのみをコピーします...
相対ファイルパスを比較することでこれを行うと思いますか?同じパス/名前のファイルは同じと見なされますか?
これはrsyncのデフォルトの動作です。ファイルサイズと最終変更サイズをチェックします。
代わりにチェックサムを使用する場合は、-c
または--checksum
オプション(同じ効果)。マニュアルページは here であり、オプションについて説明しています。また、--size-only