Сомоне может сказать мне, как заставить эту линию работать?

rsync -rtvz --delete --exclude-from exclude.txt --out-format="%M %o %n" -e "ssh -p 2323 -i /root/.ssh/server" Administrator@someserver.dynv6.net:'/cygdrive/C/Nas/Public/Büro/Kunde/Anfrage Eingang (AFE)/ '/volume2/Nas/Public/Büro/Kunde/Anfrage Eingang (AFE)/'

Я получил это сообщение об ошибке -ash: синтаксическая ошибка рядом с неожиданным токеном `('

Это синология DSM 6.x

2 ответа2

0

Administrator@someserver.dynv6.net:'/cygdrive/C/Nas/Public/ Büro / Kunde / Anfrage Eingang (AFE)/' '/ volume2

Похоже, вы пропустили закрывающий тик между (AFE)/ и / volume2

Также вам может понадобиться экранировать скобки \(\)

0

Этот сделал работу :-)

Если вам нужно передать имя файла, содержащее пробелы, вы можете либо указать опцию --protect-args (-s), либо вам нужно будет экранировать пробелы так, чтобы это понимала удаленная оболочка. Например:

Итак, окончательный ответ: если вы хотите избежать ошибок с пробелами и скобками в локальной копии, просто используйте двойные кавычки для таких переменных, как:

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"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .