Cla*_*lay 9 windows linux terminal scp
要将文件从 Linux 终端推送到 Windows 系统,以下两个示例就可以正常工作。
scp /home/user.name/file.html user.name@local.ip.num:/C:/Users/user.name/test_folder/file.html
scp /home/user.name/file.html user.name@local.ip.num:"/C:/Users/user.name/test_folder/file.html"
Run Code Online (Sandbox Code Playgroud)
我需要在本地文件夹有空格并且无法更改名称的情况下执行此操作,例如/C:/Users/user.name/test folder/
以下所有操作均失败并显示消息scp: ambiguous target
scp /home/user.name/file.html user.name@local.ip.num:"/C:/Users/user.name/test folder/file.html"
scp /home/user.name/file.html user.name@local.ip.num:"/C:/Users/user.name/test\ folder/file.html"
scp /home/user.name/file.html user.name@local.ip.num:"'/C:/Users/user.name/test\ folder/file.html'"
scp /home/user.name/file.html user.name@local.ip.num:"/C:/Users/user.name/test\\ folder/file.html"
scp /home/user.name/file.html user.name@local.ip.num:"'/C:/Users/user.name/test\\ folder/file.html'"
scp /home/user.name/file.html user.name@local.ip.num:"/C:/Users/user.name/test\\\ folder/file.html"
scp /home/user.name/file.html user.name@local.ip.num:"'/C:/Users/user.name/test\\\ folder/file.html'"
Run Code Online (Sandbox Code Playgroud)
我该如何让它发挥作用?
小智 7
尝试了上述所有选项以从 CentOS 客户端 scp 到 Windows 7 (SP1),但没有成功。
但这对我有用:
$ scp /tmp/lala 'win7@<IP>:"/Users/win7/Documents/TestComplete 14 Projects"'
Run Code Online (Sandbox Code Playgroud)
尝试使用quotes 'or Double quotes "around 完整参数。
正如 @dirkt 在评论中所建议的,引用 ssh 主机的完整路径参数应该可以完成这项工作。这使得你的命令像这样:
scp /home/user.name/file.html 'user.name@local.ip.num:/C:/Users/user.name/test folder/'
Run Code Online (Sandbox Code Playgroud)escape sequence for space在文件夹名称之间使用。
您可以使用\(带有空格的反斜杠)作为空格的转义序列。这使得你的命令像这样:
scp /home/user.name/file.html 'user.name@local.ip.num:/C:/Users/user.name/test\ folder/'
Run Code Online (Sandbox Code Playgroud)
注意&\之间有一个空格,使得它成为。testfoldertest\ folder
可能的情况是,您need to escape twice首先在本地转义,然后在远程端转义。在这种情况下你可以这样写:
"'complete argument'"双引号内的引号如下:
"'user.name@local.ip.num:/C:/Users/user.name/test folder/'"
Run Code Online (Sandbox Code Playgroud)
或者
转义空格并引用完整的论点,如下所示:
'user.name@local.ip.num:/C:/Users/user.name/test\ folder/'
Run Code Online (Sandbox Code Playgroud)
或者
像这样使用转义序列直接转义两次
user.name@local.ip.num:/C:/Users/user.name/test\\ folder/
Run Code Online (Sandbox Code Playgroud)请随意添加更多详细信息。
小智 6
我不知道这是否仍然相关,但一种解决方案(在某些情况下可能会适得其反)是使用“?” 而不是空间:
scp "user@ip:/home/user/file?with?spaces.txt" .
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30965 次 |
| 最近记录: |