rsync共有からディレクトリを完全に削除する方法

rsync共有からディレクトリを完全に削除する方法

rsync共有から特定のリモートディレクトリを完全に削除するrsyncコマンドはありますか?私の言葉は、ディレクトリの内容だけでなく、ディレクトリ自体も削除するということです。そして、親ディレクトリ全体が非常に大きくなる可能性があるため、再同期する必要はありません。

答え1

私の質問に答える...実際には、リモートサーバーからディレクトリ(ディレクトリ自体を含む)を完全に削除することができます。以下の例を確認してください。

rsync -r --delete --include 'x/***' --exclude '*' local_empty_directory/ rsync://some_server/some_share/x_parent_directory

重要なのは、ローカルの空のディレクトリに親ディレクトリx(たとえば)を整理し、削除したいディレクトリ(たとえば)とその内容のみを含むすべてを除外することです。x_parent_directorylocal_empty_directory--exclude '*'x--include 'x/***'

答え2

rsync のマニュアルページに従って --exclude を使用できます。

--除外=パターン

このオプションは --filter オプションの省略形であり、デフォルトではルールを除いて通常のフィルタリングルールの完全なルール解析構文を受け入れません。

--除外=ファイル

このオプションは--excludeオプションに関連していますが、除外パターン(1行に1つ)を含むFILEを指定します。ファイル内の ";"または、「#」で始まる空行は無視されます。 FILE が - の場合、標準入力からリストを読み込みます。

答え3

rsyncを使用してリモートディレクトリを削除することはできません。最良の方法は削除することです。すべてのファイルリモートディレクトリは "--remove-source-files"オプションを使用します。マニュアルページから:

これは送信の一部であり、受信側から正常にコピーされたファイル(つまりディレクトリではなく)を送信側から削除するようにrsyncに指示します。

あるいは、SSH経由でrmコマンドを単に実行することもできます。たとえば、次のようになります。

ssh root@remote_ip -c "rm -rf /somedir"

関連情報