Мой друг помог мне разобраться в этом - мы использовали bash -l -c, чтобы получить полную оболочку входа в систему для запуска сценария TCL, и, по-видимому, это понравилось намного больше :
start() {
echo -n "Starting $prog: "
/bin/bash -l -c '/opt/camelot/register-phones.sh'
RETVAL=$?
[ $RETVAL -eq 0 ] && touch $LOCKFILE
echo
return $RETVAL
}
Добавление /.
к вашему исходному каталогу приведет к передаче его содержимого вместо самого каталога. В отличие от решения с подстановочными знаками, это также будет включать любые скрытые файлы.
$ scp -r ~/local_dir/. user@host.com:/var/www/html/target_dir
Это решение принадлежит roaima, но я подумал, что оно должно быть опубликовано как фактический ответ, а не только как комментарий.
Выполните следующие действия:
Копировать каталог local_dir
со всеми его подкаталогами -:
scp -r ~/local_dir user@host.com /var/www/html/target_dir
скопировать только содержимое local_dir
, а не сам каталог local_dir
:
scp -r ~/local_dir/* user@host.com /var/www/html/target_dir
Не используйте :scp -r ~/local_dir/. user@host.com /var/www/html/target_dir
, так как это выдает ошибку (только что проверено и получено следующее сообщение об ошибке):
scp: error: unexpected filename:.