送信側に存在しないファイルを削除するには、受信側にrsyncを要求しましたが、受信側で例外が発生しました。

送信側に存在しないファイルを削除するには、受信側にrsyncを要求しましたが、受信側で例外が発生しました。

私は次のトピックを読んだ。

しかし、私が知っている限り(何か落ちたかもしれない)、次の問題は扱いません。

rsync送信側、受信側に存在しないファイルのコピーおよび削除を要求する方法(例外)は何ですか? (たとえば、.hg送信側にリポジトリがない場合でも、受信側のMercurialリポジトリを削除しないでください。)

一つの可能​​性は?

下記@Richard Hollowayの回答を借りてください。次のような行があるとしましょう。

rsync -av --exclude=dont_delete_me --delete /sending/path /receiving/path

rsync私が理解したように、この行はトランスポートパスにないすべてのエントリを削除しますdont_delete_me。今私の質問は、rsyncが受信側で同じままであるかどうかです。dont_delete_me 送信者が一致するものがない場合でも同じですかdont_delete_me

ベストアンサー1

--deleteとを使用すると、--exclude元のファイルを削除しても除外された場所の内容は削除されません。

rsyncただし、これによりフォルダがまったく削除されない問題が発生します。したがって、そのフォルダrsyncに対して他の作業が必要ですsync

例えば。

rsync -nav /home/richardjh/keepall/ /home/backup/richardjh/keepall/
rsync -nav --exclude=keepall --delete /home/richardjh /home/backup/richardjh

これを反対方向に実行することもできますが、削除されたファイルをすべて削除してから置き換えるので、それほど効率的ではありません。

ライナーではできません。

おすすめ記事