rsync --delete パラメータの詳細な説明とディレクトリのクリアの実践

この記事では、rsync --delete の機能、一般的な使用法、注意点を紹介し、空のディレクトリを使用してターゲット ディレクトリをすばやくクリーンアップする実際の例を示します。

rsync --delete の中心的な機能は、ターゲット ディレクトリ内の「ソース ディレクトリが存在しない」ファイルを削除して、ターゲット側とソース側の一貫性を保つことです。

一般に、次のシナリオで使用されます。

  • 同期中にターゲット側の過去の冗長ファイルをクリーンアップする
  • 空のディレクトリを使用してターゲット ディレクトリをすばやくクリアします

基本的な文法

1
rsync -a --delete 源目录/ 目标目录/
  • -a: アーカイブ モード、権限やタイムスタンプなどの属性を保持します。
  • --delete: ターゲット上の余分なファイルを削除します

重要な注意事項: 源目录 の最後に / があるかどうかは、同期動作に影響します。 / を使用すると、ディレクトリの内容を同期することを意味し、/ を使用しない場合は、ディレクトリ自体を同期することを意味します。

ターゲットディレクトリを空のディレクトリですばやくクリアします

「ディレクトリ構造は保持するが、中身は空にする」ことが目標の場合は、空のディレクトリをソースとして同期できます。

1
2
3
4
5
# 1) 创建空目录
mkdir -p /tmp/empty_dir

# 2) 同步并删除目标目录中的内容
rsync -a --delete /tmp/empty_dir/ /path/to/target_dir/

通常、この方法は、大規模なディレクトリのシナリオで 1 つずつ削除するよりも効率的であり、自動スクリプトの作成も簡単です。

よく使用される拡張パラメータ

  • --delete-before: 最初に削除してから送信します。これは、シナリオによってはより効率的です。
  • --progress: 送信と処理の進行状況を表示

例 (クリーンな Nginx ログ ディレクトリ):

1
rsync -a --delete --progress /tmp/empty_dir/ /var/log/nginx/

使用方法の提案

  • --dry-runでプレビューし、削除範囲を確認してから実行します
  • 本番環境で使用する前に、対象ディレクトリのバックアップを作成することをお勧めします。
  • クリティカル パスを実行する場合は、オフピーク時間帯の操作を優先する
记录并分享
Hugo で構築されています。
テーマ StackJimmy によって設計されています。