単一または二重ダッシュで始まるフォルダを含むドライブを再同期しようとしています。たとえば、次のようになります。
- -ファイル-
- - アーカイブ -
私は以下を試しました:
rsync -azP -e <source drive>/* <destination drive>
...ただし、ダッシュ(-)またはダブルダッシュ(--)で始まるフォルダは同期されません。
ダッシュ(-)またはダブルダッシュ(--)で始まるフォルダを正しく同期させるにはどうすればよいですか?
答え1
ほとんどのツールと同じ方法でこれを行います。
./
パスを明示的に書き込むか、ディレクトリの絶対パスを使用してダッシュで始まらないようにパスを書き込むことができます。rsync ...options... /full/path/src ./dst
--
パス名オペランドの前でオプションの解析を停止できます。rsync ...options... -- srcpath dstpath
あなたの場合は、以下を使用してください--
。/some/other/path/--Archives-
--Archives-
rsync -av -- --Archives- /some/other/path
--Archives-
次のコマンドは、ターゲットディレクトリの内容のみをコピーします。
rsync -av -- --Archives-/ /some/other/path
重要なのは、ソースパスの末尾にあるスラッシュです。ターゲットパスの末尾にあるスラッシュは関係ありません。
必要でない限り、ソースパスに明示的なワイルドカードを使用する必要はほとんどありません。避けるトップレベルのソースパスから隠し名前をコピーします。
ソースまたは宛先へのネットワーク接続を作成するために特別な方法で呼び出す必要がない限り、コマンド-e
例ではこの操作は必要ありません。ssh
質問のサンプルコードで、ソースパスにプレフィックスを追加したようです。-e
これはバグかもしれません。ドライバー、ネットワーク経由の接続はまったく含まれていません)。
さらに-z
、(圧縮)を使用すると、ネットワーク接続が非常に遅い場合(たとえば、圧縮および圧縮解除の速度が転送速度よりはるかに速い場合)以外の速度が速くなる可能性はありません。したがって、-z
ローカルレプリケーションを実行する場合は必要ありません。実際、これにより作業速度が遅くなることがあります。
答え2
相対パス名(ファイル名)が前に付けられ、./
ダッシュで始まらなくなりました。
rsync -av ./-items* destination:destPath/
または、ワイルドカードを削除し*
て親ディレクトリを移動します。
rsync -av ./ destination:destPath/dir