2015-09-29 6 views
1

Когда я запускаю команду:команда Cygwin работает из командной строки, но не из сценария

rsync -avzhu --progress --exclude node_modules -e 'ssh -p 2022' /cygdrive/d/stuff_to_backup [email protected]:/home2/user/backup 

Это прекрасно работает из командной строки, но когда та же самая команда из скрипта, то он выдает эту ошибку:

The source and destination cannot both be remote. 
rsync error: syntax or usage error (code 1) at main.c(1261) [Receiver=3.1.1] 

Любые идеи, почему это может произойти?

ответ

1

Провел хороший кусок вечера, пытаясь понять это, поэтому, надеюсь, это когда-нибудь поможет кому-то еще.

Другая ошибка, которую я хотел бы получить много как я возился с этим вопросом является:

Unexpected remote arg: C:/Program Files (x86)/Git/cygdrive/c/Users 

И так как я заметил, что это лишь развела ошибки из сценария оболочки, а не из командной строки, я был в состоянии чтобы определить, что он отлично работает с окнами без cygwin (cmd.exe), он просто запускался из bash, где у него были проблемы.

Большинство проблем, с которыми я столкнулся, были связаны с цитатой и что-то странное, с тем, что у меня было для источника. Я попытался использовать такой путь, как «/ cygdrive/d/backup_dir», но это как-то превратилось или интерпретировалось как «C:/Program Files (x86)/Git/cygdrive/d/backup_dir», что вызвало ошибки. Это не было проблемой после того, как я переключился на относительные пути без «cygdrive». Я использую cmder, возможно, это вызвало это?

В любом случае, окончательное решение было опустить часть «cygdrive» и использовать относительный путь. Кроме того, не переусердствуйте с котировками «».

Смежные вопросы