次のコマンドは、$MIRROR_SOURCE を基準とした $MIRROR_SOURCES から $MIRROR_DEST にファイルを再帰的にコピーしますが、削除フラグは機能しません。
rsync -var --files-from=$MIRROR_SOURCES --delete $MIRROR_SOURCE $MIRROR_DEST
答え1
読む- 消去慎重にman rsync
、強調は私によるものです:
これは、rsyncに受信側(送信側にない)の余分なファイルを削除するように指示しますが、同期されているディレクトリのみ. ワイルドカードはシェルによって展開され、rsync はファイルの親ディレクトリではなく個々のファイルを転送する要求を受け取るため、ディレクトリの内容にワイルドカード (例: "dir/*") を使用せずに、ディレクトリ全体 (例: "dir" または "dir/") を送信するように rsync に要求する必要があります。 転送から除外されたファイルは、--delete-excluded オプションを使用しない限り、削除からも除外されます。または、ルールを送信側でのみ一致するようにマークします (フィルター ルール セクションの include/exclude 修飾子を参照してください)。
要するに、これは同期対象として指定したものに対してのみ実行され、ワイルドカードを指定したかどうかに依存します。これを望まず、代わりにどこでも実行したい場合は、フラグも指定できます--delete-excluded
。