我正在尝试在 winXP 上使用 plink 连接到 linux 服务器并执行命令。这是我正在运行的命令行:
plink some_profile cd "$(echo 'T:\somedir\somesubdir with space in it\' | sed 's_\\_/_g' | sed 's_T:_/media/drive1_g')";unrar x 'somefile.rar'
如果我直接在 linux 机器上执行这个命令部分(从 cd 开始),它就可以完美地工作。但是当我通过 plink 运行它时,它失败并出现以下错误:
bash: line 0: cd: /media/drive1/somedir/somesubdir: No such file or directory
我认为我在通过 plink 时没有正确引用命令,因此它没有传输处理目录中空格所需的引号。关于如何引用它以使其起作用的任何想法?
如果您想知道我为什么要这样做,它基本上是我在 Directory Opus 上运行的一个脚本,我可以在其中解压缩我当前突出显示的文件(一个 samba 挂载)。目录和文件名被传递给脚本,该脚本将在我的远程盒子上解压缩该文件。
谢谢!
编辑:由于米克尔的回应,问题得到了解决。这是现在可以使用的线路,以防其他人稍后遇到此问题......
plink some_profile cd \"$(echo 'T:\somedir\somesubdir with space in it\' | sed 's_\\_/_g' | sed 's_T:_/media/drive1_g')\";unrar x 'somefile.rar'