GNU/Linux >> Linux の 問題 >  >> Linux

rsync は送信先のファイルを削除しません

解決策 1:

* を削除します . rsync のマニュアル ページに記載されているように、--delete オプションは、ワイルドカード エントリでは機能しません。

代わりにこれを使用してください:

rsync -a --delete $DIR1/ $DIR2/

"--deleteこれは、rsync に受信側 (送信側にないファイル) から余分なファイルを削除するように指示しますが、同期されているディレクトリに対してのみ削除します。ディレクトリ全体を送信するように rsync に要求している必要があります (例:dir または dir/ ) ディレクトリの内容にワイルドカードを使用しない (例:dir/* ) ワイルドカードはシェルによって展開され、rsync はファイルの親ディレクトリではなく、個々のファイルを転送する要求を取得するためです。 --delete-excluded を使用しない限り、転送から除外されたファイルは削除からも除外されます。 オプションを選択するか、ルールを送信側でのみ一致するものとしてマークします (FILTER RULES セクションの include/exclude 修飾子を参照してください)。"

解決策 2:

その理由は、/tmp/1/b で rsync を呼び出しているためです。これは、/tmp/1/a ファイルをまったく考慮しません。

あなたの意図は、ディレクトリ /tmp/1/ を rsync することであると思われます。個々のファイルではなくソースとして「/tmp/1/」を使用すると、「a」がディレクトリから削除されたことに気づき、削除されます。

解決策 3:

rsync の 2 行目を rsync -a --delete $DIR1/ $DIR2 に変更すると、 (* なし) 動作します。その理由は、シェルが * を展開するためです。 最初のディレクトリのファイル名に、これはあなたの場合は b だけです。したがって、実行されるコマンドは実際には rsync -a --delete $DIR1/b $DIR2 であるため、不足しているファイル a は rsync によってまったく考慮されません。 .


Linux
  1. 安全にファイルを再帰的に削除します:シュレッダー

  2. Linux –何千ものファイルを含む大きなディレクトリを効率的に削除しますか?

  3. 存在しないファイルで失敗するRmオプション?

  1. Linuxでのrsyncコマンドの実用例

  2. ダウンロードしたWindowsUpdateを削除する

  3. Linux ファイルとディレクトリの削除

  1. Rsyncを選択的に消音する方法は?

  2. Linux マージ フォルダ:rsync?

  3. /var/log をすべて削除しますか?