当我运行我的 Python 应用程序(在本地同步远程目录)时,如果包含我的应用程序的目录的名称中有一个或多个空格,我会遇到问题。目录名称出现在 ssh 选项中,例如“ -o UserKnownHostsFile=<path>
”和“ -i <path>
”。我尝试在生成命令字符串的函数中使用双引号路径,但没有。我也尝试像这样替换空格:path.replace(' ', '\\ ')
,但它不起作用。请注意,我的代码适用于不带空格的目录名。ssh 返回的错误是“行尾的垃圾”(代码 12) 生成的命令行似乎没问题..
rsync -rztv --delete --stats --progress --timeout=900 --size-only --dry-run \
-e 'ssh -o BatchMode=yes \
-o UserKnownHostsFile="/cygdrive/C/Users/my.user/my\ app/.ssh/known_hosts" \
-i "/cygdrive/C/Users/my.user/my\ app/.ssh/id_rsa"'
user@host:/home/user/folder/ "/cygdrive/C/Users/my.user/my\ app/folder/"
我究竟做错了什么?谢谢!