Я недавно видел презентацию avamar от EMC, которая может сделать дифференциальное резервное копирование и также только сохранить блоки данных однажды (чтобы упростить, если бы электронное письмо было послано от кого-то и получено кем-то в Вашей компании, то это было бы сохранено только однажды).
Итак:
echo "Enter file or folder path"
read target
if [ ! -e "$target" ]
then
echo $target does not exist
else
echo Transferring $target
rsync -avzr $target user@example.com:/home/user/target_directory
fi
поместите это в файл с именем sender.sh. Тогда позвони bash sender.sh из командной строки.
Я предлагаю вам поискать параметры команды rsync. Они могут сильно изменить поведение.
Для ответа Can требуется, чтобы пользователь запустил сценарий, а затем ввел путь вручную. Следующее позволит вам использовать синтаксис, указанный в OP:
#!/bin/bash
echo -n "Transferring ${*} to server... "
rsync -az ${*} <user>@<server>:/path/to/target/ 1> /dev/null
echo "Done!"
Этот сценарий займет все аргументы CLI, передаваемые ему как исходные каталоги / файлы, и отправляют их на сервер.