有人能告诉我怎样让这条线路工作吗?
rsync -rtvz --delete --exclude-from exclude.txt --out-format="%M %o %n" -e "ssh -p 2323 -i /root/.ssh/server" [email protected]:'/cygdrive/C/Nas/Public/Büro/Kunde/Anfrage Eingang (AFE)/ '/volume2/Nas/Public/Büro/Kunde/Anfrage Eingang (AFE)/'
我收到此错误消息 -ash:意外标记“(”附近的语法错误
这是 Synology DSM 6.x
答案1
[电子邮件保护]:'/cygdrive/C/Nas/Public/Büro/Kunde/Anfrage Eingang (AFE)/' '/volume2
看起来你错过了 (AFE)/ 和 /volume2 之间的结束标记 '
您可能还需要转义括号 \( \)
答案2
这一个完成了工作:-)
如果您需要传输包含空格的文件名,您可以指定 --protect-args (-s) 选项,或者您需要以远程 shell 可以理解的方式转义空格。例如:
因此,最终答案是,如果您想避免本地副本上出现空格和括号错误,只需对变量使用双引号,例如:
source="/root/new folder ()/"
dest="/root/some other folder ()"
rsync -rtvz --delte "$source" "$dest"
如果您想从远程主机复制,则必须设置--protect-args标志。
rsync -rtvz --delete --protect-args -e "ssh -p 22 -i /root/.ssh/somekey" root@someserver:"$source" "$dest"
或者
rsync -rtvzs --delete -e "ssh -p 22 -i /root/.ssh/somekey" root@someserver:"$source" "$dest"