scpを介してWindowsホストにファイルを転送するときに定義されたパスがファイル名として使用されるのはなぜですか?

scpを介してWindowsホストにファイルを転送するときに定義されたパスがファイル名として使用されるのはなぜですか?

SCPを使用してLinux(正確にはRaspbian、重要ではありません)からWindowsにファイルをコピーしようとするとき:

scp a.txt {user}@{ip}:\C\Users\{user}\a.txt

ファイルがコピーされましたがC:\Users\{user}\CUsers{user}a.txt

どういうわけか「\」をエスケープする必要があるようですが、方法がわかりません。

ベストアンサー1

Windowsで使用したことがないscpので推測だけしていますが、バックスラッシュが無視されるようです。または、むしろエスケープ文字として扱われ、関連項目をエスケープしないので無視されるようなものです。 Linuxシステムでは、次の点を考慮してください。

$ cd \usr\share
bash: cd: usrshare: No such file or directory

ご覧の\とおり、上記のように無視され、パスは単一の文字列にリンクされています。

デフォルトの宛先はscpユーザーのホームディレクトリです。したがって、\C\Users\userName指定したいパスがファイル名として使用され(\C\Users\userName\a.txt) 、ファイルはその名前のCUsersuserNamea.txtデフォルトの場所に保存されます。C:\Users\userName\CUsersuserNamea.txt

この場合、簡単な解決策はパスを指定しないことです。

scp a.txt user@ip:

おすすめ記事