У меня виртуальный сервер ubuntu, запущенный на моем сервере Windows. У этого сервера есть 2 внешних hdd, которые установлены в ubuntu.
Теперь я пытаюсь запустить rsync для синхронизации каталога на моем рабочем столе и моем сервере Windows.
Я делаю это как следует:
rsync -av --update christophe@begijnhof.no-ip.org:/home/seagate/Syncfolder/Pictures/ /syncs/pictures
/syncs/pictures является символической ссылкой на /cygdrive/c/../pictures. Все эти символические ссылки работают правильно, и удаленный каталог тоже существует.
Теперь, когда я запускаю эту команду rsync выше, она делает это:
created directory /syncs/pictures\#015
Это фактически создает каталог с именем «картинки "в моей / syncs / папке. Так что не в символической ссылке. Рядом с символической ссылкой:
$ ls
pictures pictures?
Когда я добавляю конечную косую черту в пункт назначения:
rsync -av --update christophe@begijnhof.no-ip.org:/home/seagate/Syncfolder/Pictures/ /syncs/pictures/
Создает каталог с именем «# 015» (странная точка) внутри (! d7)
Я думаю, что это как-то связано с кодировкой?
Я написал все сценарии bash в блокноте ++ с кодировкой в ANSI.
Основная проблема здесь - по крайней мере, в моем случае - заключалась в том, что в рассматриваемом файле было соглашение Windows для CR + LF charater в конце файла сценария, а не в соглашении * nix, просто использующем только LF , Чтобы исправить это, вам нужно изменить сам файл сценария, чтобы он соответствовал соглашениям * nix. Ответ выше предлагает пару хороших способов сделать это. Некоторые редакторы (например, Notepad ++) имеют встроенную аналогичную функциональность.