1. ホーム
  2. rsync

[解決済み] サーバーにターゲットディレクトリを作成するように設定するにはどうしたらいいですか?

2022-04-30 17:28:58

質問

以下のことをしたい。 rsync をローカルコンピュータからサーバーに送信します。存在しないディレクトリで、私が望むのは rsync を使用して、まずサーバー上にそのディレクトリを作成します。

どうすればいいのでしょうか?

どのように解決するのですか?

作成するリーフディレクトリが最後のものよりも多い場合は、別の ssh ... mkdir -p を最初に使うか、あるいは --rsync-path のようなトリックを使用します。 はこちらで解説しています :

rsync -a --rsync-path="mkdir -p /tmp/x/y/z/ && rsync" $source user@remote:/tmp/x/y/z/

または --relative オプションは、Tony が提案したものです。この場合、存在しなければならない宛先のルートだけを指定し、作成されるソースのディレクトリ構造は指定しない。

rsync -a --relative /new/x/y/z/ user@remote:/pre_existing/dir/

このようにすると、最終的に /pre_existing/dir/new/x/y/z/ になります。

また、"y/z/"を作成したいが、"new/x/"の中には作成したくない場合、以下のようにします。 ./ が必要な箇所 --relative を開始します。

rsync -a --relative /new/x/./y/z/ user@remote:/pre_existing/dir/

は /pre_existing/dir/y/z/ を作成します。