ローカル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"'