如何使用cygwin与sshd scp从另一台机器上的Program Files(x86)目录中的文件?

时间:2013-12-26 19:46:31

标签: cygwin scp parentheses

我有一台Linux机器和2台Windows机器。每台Windows机器都包含带有sshd守护程序的cygwin。 Linux机器是我正在使用的主要机器。在XP的第一台Windows机器上,我有一个文件,我想与第二台Windows机器上的文件进行比较,即Windows 7。

我的想法是,一旦我进入XP机器,我应该能够轻松地使用scp命令获取Windows 7机器上的文件,然后运行差异来比较2个文件,但它首先被绊倒在“程序文件”中的空格上以及在使用\来逃避它们之后,它会在括号中被绊倒。

逃脱的空间

$ scp root@10.10.10.10:/cygdrive/c/Program\ Files\ (x86)/myfile.xml .
-bash: syntax error near unexpected token `('

Escaped斜杠

$ scp root@10.10.10.10:/cygdrive/c/Program\ Files\ \(x86\)/myfile.xml .
root@10.10.10.10's password: 
bash: -c: line 0: syntax error near unexpected token `('
bash: -c: line 0: `scp -f /cygdrive/c/Program Files (x86)/myfile.xml'

使用变量

$ scpfile="/cygdrive/c/Program Files (x86)/myfile.xml"
$ scp root@10.10.10.10:$scpfile .
root@10.10.10.10's password: 
scp: /cygdrive/c/Program: No such file or directory
cp: cannot stat `Files': No such file or directory
cp: cannot stat `(x86)/myfile.xml': No such file or directory

我也尝试使用带有转义斜杠的变量,但没有运气。

如果我将myfile.xml移动到/ cygdrive / c /然后scp它,它将正常工作。如何使用cygwin的scp?

scp包含括号的目录中的文件

1 个答案:

答案 0 :(得分:2)

如果创建指向Program Files(x86)目录的软链接并使名称不带空格或括号,则可以将该目录与scp结合使用。

On Cygwin(10.10.10.10)

cd c:
ln -s "Program Files (x86)" PF86

在Linux上(运行scp的家用电脑)

scp root@10.10.10.10:/cygdrive/c/PF86/myfile.xml .

它有效