web-dev-qa-db-ja.com

rsyncはデフォルトでファイル、目的のフォルダを削除しますか?

ファイル

/foo/srcA.cのみが含まれ、/foo/destにはA.cB.cの両方が含まれるとします。次のコマンドを実行したとします。

rsync /foo/src/ /foo/dest

rsyncB.cを消去しますか?

フォルダ

/foo/srcに、その中にいくつかのファイルがあるディレクトリAがあり、/foo/destには、その中にあるファイルがあるディレクトリABの両方があるとします。次のコマンドを実行したとします(-aオプションには-r、再帰が含まれます)。

rsync -a /foo/src/ /foo/dest

rsyncBとその内容を消去しますか?

41
Crowder

デフォルトでは、rsyncはファイルを削除しませんが、それは指定したコマンドオプションによって異なります。ファイルを削除したい場合は、次のいずれかを使用できます。

  • −−del(−−delete − duringのエイリアス)
  • −−delete(dest dirsから無関係のファイルを削除する)
  • −−delete − before(受信者はxferの前に削除する[デフォルト])
  • --delete-during(受信者はxfer中に削除されます。以前には削除されません)
  • −−delete − after(レシーバはxferの後に削除しますが、前には削除しません)
  • −−delete − excluded(destディレクトリからも除外ファイルを削除します)
  • −−max − delete = NUM​​(NUM以上のファイルを削除しないでください)

あなたは特に - aオプションを呼び出したので、これがmanページに書かれていることです。

- a、 - アーカイブ>

これは - rlptgoDと同じです。それはあなたが再帰を望み、ほとんどすべてを保存したいと言う簡単な方法です(-Hは著しい省略です)。上記の等価性に対する唯一の例外は、 - files-fromが指定されている場合です。この場合、-rは暗黙的に指定されていません。

- aはハードリンクを保存しないことに注意してください。多重リンクファイルを見つけるのはコストがかかるからです。別途 - Hを指定する必要があります。

だからあなたの質問に対する答えはNOのようです。それはあなたの例が与えられれば削除されません。
HTH

48
SaxDaddy