1. ホーム
  2. linux

[解決済み】スラッシュとrsyncコマンド

2022-02-22 17:18:48

質問

この質問で問われていることと同じようなことをしようとしているのですが。 RSyncです。双方向の同期をとるにはどうしたらいいですか?

しかし、わからないのは、ファイルパスの末尾にスラッシュをつけるべきかどうかということです。基本的に私は、同じ名前で2つの異なるサーバーにある2つのディレクトリの内容を同期させるエイリアスコマンドを作成しようとしています。私が望まないのは、一方のディレクトリがもう一方のディレクトリにコピーされることです(末尾のスラッシュがどのように行われるかによって可能性があることは承知しています)。

現在、私が持っているのは

alias syncDirectories1 = 'rsync -tvur name@host:/Users/me/directory/ /Users/me/directory/'
alias syncDirectories2 = 'rsync -tvur /Users/me/directory/ name@host:/Users/me/directory/'

私が達成しようとしていることについては、両方のファイルパスの末尾にスラッシュがあるべきでしょうか?

よろしくお願いします。

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

に記述されています。 rsync(1) の man ページを参照してください。

<ブロッククオート

送信元の末尾にスラッシュを付けると、送信先に追加のディレクトリレベルが作成されないようにこの動作が変更されます。 このため は、quot;ディレクトリを名前でコピー" と対照的に、このディレクトリの内容をコピー" という意味です。 の属性が,転送先の含むディレクトリに転送されます. 言い換えれば,以下の各 の属性の設定も含めて、同じようにファイルをコピーします。

rsync -av /src/foo /dest
rsync -av /src/foo/ /dest/foo

宛先については、大きな影響はないと思います。ソースがファイルで、destinationが存在しない場合の違いはあります。

rsync SRC DEST

はコピーを作成します。 SRC という DEST 一方

rsync SRC DEST/

はディレクトリを作成します。 DEST をコピーし SRC ファイルを追加してください。