私はこの質問で尋ねられたものと同じ線に沿って何かをしようとしています: 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)
のマンページで説明されています。
ソースの末尾のスラッシュは、この動作を変更して、宛先に追加のディレクトリレベルが作成されないようにします。ソースの末尾の/は、「ディレクトリを名前でコピーする」ではなく「このディレクトリの内容をコピーする」という意味と考えることができますが、どちらの場合も、含まれるディレクトリの属性は宛先の含まれるディレクトリに転送されます。 。つまり、次の各コマンドは、/ dest/fooの属性の設定を含め、同じ方法でファイルをコピーします。
rsync -av /src/foo /dest rsync -av /src/foo/ /dest/foo
目的地に関しては、大きな影響はないと思います。ソースがファイルであり、宛先が存在しない場合は違いがあります—コマンド
rsync SRC DEST
SRC
と呼ばれるDEST
のコピーを作成しますが、
rsync SRC DEST/
ディレクトリDEST
を作成し、SRC
ファイルをそのディレクトリにコピーします。
ArchLinuxでrsync3.1.3を使用してテストしましたが、結果は次のとおりです。
1. rsync -avPzu test login@remote:/home/login/test "test" directory is copied inside of existing "test" on remote (structure is then test/test/...)
2. rsync -avPzu test login@remote:/home/login/test/ same as above
3. rsync -avPzu test/ login@remote:/home/login/test content of "test" directory is synchronized with the remote "test" directory
4. rsync -avPzu test/ login@remote:/home/login/test/ same as above
5. rsync -avPzu test login@remote:/home/login/ same as above
6. rsync -avPzu test login@remote:/home/login same as above
この場合、受け入れられた答えとは反対に、方法3〜6が正しい方法です。
ソースにスラッシュを保持し、宛先からスラッシュを削除します。このような:
alias syncDirectories1 = 'rsync -tvur name@Host:/Users/me/directory/ /Users/me/directory'
alias syncDirectories2 = 'rsync -tvur /Users/me/directory/ name@Host:/Users/me/directory'
Ubuntu17.04で受け入れられた回答とは異なる結果が得られました。行き先/効果がないようです。次の4つのコマンドを実行しました。
rsync -av src nslash # No slashes on either src or dest
rsync -av src dslash/ # Slash on Dest only
rsync -av src/ sslash # Slash on src only
rsync -av src/ sdslash/ # Slash on both src and dest
結論: