NASから外付けハードドライブに新しいファイルをコピーしたいです。これまでは、新しいファイルを手動でコピーしました。それではスクリプトを使ってそれを自動化したいと思います。しかし、これまでrsyncを使って試したことはすべて、新しいファイルだけでなくすべてのファイルをコピーするようです。次のコマンドを試してみました。
rsync -ar \
--ignore-existing \
--size-only \
--progress --info=progress2 \
--dry-run \
"/Volumes/NAS" "/Volumes/G-DRIVE mobile SSD R-Series"
また、サイズだけでなくチェックサムなども使ってみました。誰かが私にこれらの行動や私の仕事をするために何をすべきかを説明してもらえますか?統計を印刷すると、常にすべてのファイルを転送するように表示されます。また、-iパラメーターを使用すると、各ファイルについて以下の情報を取得できます。 >f++++++++++
答え1
正しいコマンドはおそらく次のようになります。
rsync --archive --progress --info=progress2 \
'/Volumes/NAS/' '/Volumes/G-DRIVE mobile SSD R-Series'
-a
(--archive
)フラグは(-t
)--times
と-r
(--recursive
)を意味するので、明示的に指定する必要はありません。 ()の使用はサイズとタイムスタンプを取得できる場合は--size-only
悪い選択ですが、制限されたファイルシステム(FATなど)にコピーする場合は、2秒の時間単位を克服するための時間枠が必要になる場合があります。ターゲットから何らかのコピーを取得した後、ソースファイルへの変更を無視したい場合を除き、使用しないでください。-a
--archive
--modify-window=2
--ignore-existing
テストするときは必ず--dry-run
(-n
)を使用し、rsync
ジョブを適用する準備ができたら削除することを忘れないでください。
最後に、ソースディレクトリには通常、後ろにスラッシュが必要です。ドキュメントには次のように説明されています。
ソースの末尾のスラッシュは、ターゲットに追加のディレクトリレベルが生成されないようにこの動作を変更します。
/
ソースの末尾は「このディレクトリの内容をコピーしてください。「相対的に」名前でディレクトリをコピー」。