我试图将本地linux机器上的文件scp到远程Windows计算机,并且在scp处理带有空格的Windows文件路径时出现了一些不一致之处.
这是可行的,请注意在指向本地文件的路径中正确地转义了空格:
scp /home/will/file\ with\ spaces.txt remote@host:D:/Users/will/Downloads/
然而,尽管“谷歌驱动器”文件夹中的空间已被正确转义,但这是行不通的:
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路径中使用引号呢?
发布于 2020-01-13 13:30:03
正如问题中提到的,并回答了这里,方法2是在我的情况下起作用的解决方案。为了方便以后的读者,增加了答案。
scp
单引号/双引号:
scp ./myfile.txt user@host:'"/c:/AppName/a poorly named dir/sub_dir/myfile.txt"'
发布于 2019-07-09 21:52:29
我在Windows 10上疯了--这对我来说很管用
scp -r user@hostname:"/Library/Application' 'Support/Adobe/Common/Plug-ins/7.0/" ./Adobe
发布于 2021-05-25 17:36:12
使用-T
选项:
scp -T user@remote.host:'"c:\path with\spaces in\it\foo.txt"' .
https://unix.stackexchange.com/questions/443236
复制相似问题