![scp 文件中有空格](https://linux22.com/image/1404321/scp%20%E6%96%87%E4%BB%B6%E4%B8%AD%E6%9C%89%E7%A9%BA%E6%A0%BC.png)
我在机器 1(windows)上有一个名为 test file.txt 的文件。我正在尝试获取此文件
scp 到机器 2(Linux)。
setenv 文件名 "测试文件.txt"
scp 用户 1@机器 1:C:\Folder\$fileName /path/some
请注意我也曾尝试过
scp 用户 1@machine1:C:\Folder\\"$fileName\" /path/some
无论如何,Linux 终端都会因期望多个文件“测试”和“文件”而引发错误。
请在这方面帮助我。
答案1
将文件名存储在变量中是行不通的,因为在使用时它会被扩展。
如果是 Linux 机器,您需要引用文件名并转义空格 - 引用它以便本地机器正确地将字符串传递给 scp,并转义它以便远程机器知道正确的文件路径。例如,在 Linux 上,您可以执行类似 的操作scp user1@machine1:"C:\Folder\test\ file.txt" /path/some
。
出于同样的原因,以scp user1@machine1:"'C:\Folder\test file.txt'" /path/some
同样的方式工作。
在 Windows 上,反斜杠当然是用作分隔符的,所以如果前者不起作用,请尝试后者。