В общем, да, конечно, можно использовать подстановочный знак в scp.
Но в вашей команде scp второй аргумент является целью, а первый аргумент является источником.Вы, конечно, не можете скопировать источник в несколько целей.
Если вы, например, пытаетесь скопировать несколько jar-файлов, то, безусловно, сработает следующее:
scp path/*.jar user@host:path2/jar/
"ambigious target"case особо жалуется, что используемый подстановочный знак приводит к появлению нескольких возможных целевых каталогов в системе @host.
--- EDIT:
Если вы хотите скопировать в несколько каталогов наВ удаленной системе и должны определять их динамически, должен работать скрипт, подобный следующему:
dir_list=$(ssh user@host ls -d '/path1/foo*/path2/jar/')
for dir in $dir_list; do
scp path/file.jar user@host:$dir
done
Переменная dir_list
будет содержать результаты выполнения ls
в удаленной системе.-d
означает, что вы получаете имена каталогов, а не их содержимое.Одинарные кавычки гарантируют, что расширение подстановочного знака ожидает выполнения в удаленной системе, а не в локальной системе.
И затем вы будете проходить через каждый каталог, чтобы выполнить удаленное копирование в этот каталог.
(Все это синтаксис ksh, кстати.)