我在scp
从远程计算机传输文件时遇到了一点困难。问题显然与文件所在目录的名称有关。它们位于名为(和之间有空格)的 CD 驱动器photos 4
上。当我尝试转移时,我使用了以下命令:photos
4
scp [remote username]@192.168.1.X:/media/[remote username]/photos\ 4/file.jpg /home/[username]/Pictures
但是,我收到一条错误消息作为回报No directory: /media/[remote username]/photos
。我认为反斜杠会转义空格,以便将目录读取为photos 4
.
有人可以告诉我我在这里做错了什么吗?
(顺便说一句,我复制file.jpg
到远程计算机的桌面,然后运行命令:
scp [remote username]@192.168.1.X:/home/[remote username]/Desktop/file.jpg /home/[username]/Pictures
它起作用了,因此转义序列似乎是罪魁祸首。我只是无法弄清楚它有什么问题。)
目录或文件名中的空格是 Linux 系统的天敌,但当然可以通过尽职调查来避免。您可以尝试 3 种可能性:
scp [remote username]@192.168.1.X:"'/media/remote_username/photos 4/file.jpg'" .
scp [remote username]@192.168.1.X:"/media/remote_username/photos\ 4/file.jpg" .
scp [remote username]@192.168.1.X:/media/remote_username/photos\\\ 4/file.jpg .
一切都应该工作,但有些在语法上比其他人更容易理解......
参考:
这是 ZSH 用户的修复,