パスにスペースがあるリモートWindowsホストのscp:ターゲットが不明

パスにスペースがあるリモートWindowsホストのscp:ターゲットが不明

ローカルLinuxシステムからリモートWindowsシステムにファイルを転送しようとしていますが、scpがスペースを含むWindowsファイルパスを処理する方法でいくつかの不一致が発生します。

これはうまくいきます。ローカルファイルパスの空白が正しくエスケープされます。

scp /home/will/file\ with\ spaces.txt remote@host:D:/Users/will/Downloads/

しかし、これはいいえ「Google Drive」フォルダの空白が正しくエスケープされても機能します。

scp /home/will/file\ with\ spaces.txt remote@host:D:/Users/will/Google\\ Drive/Documents/Computer_Stuff/Home_Lab/folder

私は一つを経験したトーン同様の問題を持つ人々のためのオンラインリソースがありますが、その解決策のどれも私には適していません。

\\エスケープスペースを使用または使用せずにWindowsファイルパスを二重引用符、一重引用符で囲みました。スペースをエスケープするために二重文字と三重文字を使用してみました。\\\私もコロン(D\:)を明示的に指定してみました。宛先ファイル名がありますが、何もありません。何も動作しません。

それから私は見つけました。この回答方法#2だけが動作します!なぜ?'"、および含まれているWindowsファイルパスの違いは何ですか"'?ローカルLinuxファイルパスでは引用符をまったく使用せずにスペースをエスケープできますが、リモートWindowsパスではそうでないのはなぜですか?

ベストアンサー1

質問で言及して答えたように、ここ方法2私の場合に効果があった解決策です。将来の読者が読みやすくするための回答として追加されました。

  • Windows 10
  • 子バッシュscp

一重引用符/二重引用符:
scp ./myfile.txt user@host:'"/c:/AppName/a poorly named dir/sub_dir/myfile.txt"'

おすすめ記事