rsync は相対パスの一部を使用します。

rsync は相対パスの一部を使用します。

ファイアウォールの背後にあるローカルコンピュータにディレクトリがあるとします。

local:/home/meee/workdir/

そしてファイアウォールの反対側にあるリモートシステムのディレクトリは次のとおりです。

remote:/a1/a2/.../aN/one/two/
remote:/a1/a2/.../aN/one/dont-copy-me{1,2,3,...}/

... N>= 0 にする必要があります。

私のローカルコンピュータではrsyncone/two/

local:/home/meee/workdir/one/two/

を使用すると、rsync remote:/a1/a2/.../aN/one/two/ ~/workdir/次のように終了します。

local:/home/meee/workdir/two/

を使用すると、rsync --relative remote:/a1/a2/.../aN/one/two/ ~/workdir/次のように終了します。

local:/home/meee/workdir/a1/a2/.../aN/one/two/

このうち私が望むものは何もありません。

  1. rsync希望の結果を得るためのフラグがありますか?
  2. そうでなければ、誰でも簡単な解決策を考えることができますか?

ベストアンサー1

--relativeの場合は、ソースディレクトリパスにドットを挿入する必要があります。

rsync -av --relative remote:/a1/a2/.../aN/./one/two ~/workdir/

ドキュメントを参照してください。

-R、--相対的

[...]

また、指定されたパスごとに暗黙的なディレクトリに送信されるパス情報の量を制限することもできます。送信側(2.6.7ベース)の最新のrsyncを使用すると、次のようにソースパスにドットとスラッシュを挿入できます。

             rsync -avR /foo/./bar/baz.c remote:/tmp/

おすすめ記事