ディレクトリ名にスペースがある場合にSSHを介してrsyncする方法

ディレクトリ名にスペースがある場合にSSHを介してrsyncする方法

あるサーバーから別のサーバーに同期しようとしています。サーバーのディレクトリ構造は同じですが、スペースがあるとリモートサーバーのパス名を正しく識別できません。

詳細は次のとおりです。

ローカルディレクトリは

mnt/xlses/split/v2/name with space

リモートディレクトリは

mnt/xlses/split/v2/name with space

私が見つけることができるすべてを試しましたが、最近の試みは次のとおりです。

rsync --size-only -avzPe ssh  /mnt/xlses/split/v2/name\ with\ space/ [email protected]:/mnt/xlses/split/v2/"name with space"

実行時に最初に報告されるのは、新しいディレクトリを作成することです。

私はそれを停止し、新しいディレクトリがあることを知っていました

mnt/xlses/split/v2/name

私のすべてのファイルはそのディレクトリにあります

私は彼らがそこにいると思った。

mnt/xlses/split/v2/name with space

ベストアンサー1

努力する

rsync -s --size-only -avzPe ssh  "/mnt/xlses/split/v2/name with space/" "[email protected]:/mnt/xlses/split/v2/name with space"

man rsync(2023年アップデート)から:

--secluded-args-s

このオプションは、プロトコルを介して(リモートシェルコマンドラインの代わりに)すべてのファイル名とほとんどのオプションをリモートrsyncに送信し、リモートシェルがそれを変更するのを防ぎます。ワイルドカードは、シェルではなくリモートホストでrsyncによって拡張されます。

[...]

--protect-argsこのオプションは(3.2.6より前)呼び出され、まだ古い名前を使用できます(指定するのは-s常に最も簡単で互換性の高いオプションです)。

おすすめ記事