あるサーバーから別のサーバーに同期しようとしています。サーバーのディレクトリ構造は同じですが、スペースがあるとリモートサーバーのパス名を正しく識別できません。
詳細は次のとおりです。
ローカルディレクトリは
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
常に最も簡単で互換性の高いオプションです)。