Что-то вроде этого:
rsync -avh --delete /local/directory username@remotehost:/home/public
Это создаст directory в /home/public . Однако если вы хотите, чтобы содержимое directory находилось непосредственно в /home/public используйте что-то вроде (обратите внимание, что завершающий слеш):
rsync -avh --delete /local/directory/ username@remotehost:/home/public
Проверьте man rsync для большего количества вариантов. Те, которые использовались выше:
--delete удалит несуществующие файлы на удаленном хосте, поэтому будьте осторожны с тем, что вы переносите.
a предназначен для "архивирования" и должен быть полезен в большинстве случаев
h включит удобочитаемые размеры файлов
Некоторые дополнительные опции, которые вы можете использовать:
--progress чтобы увидеть текущий прогресс, а также
--dry-run чтобы увидеть, что теоретически будет передано (но на самом деле ничего не передается)