Я пытаюсь скопировать один файл с локального сервера в список серверов, описанных в Servers.txt. Целевой путь - что-то вроде /local/opt/path1/sub/*/lib/file.jar
* может соответствовать любой папке там.
ls -ltrh /local/opt/path1/sub/*/lib/file.jar
-rw-r--r-- 1 user user 538K Jan 31 2011 /local/opt/path1/sub/production/lib/file.jar
-rw-r--r-- 1 user user 538K Jan 31 2011 /local/opt/path1/sub/default/lib/file.jar
-rw-r--r-- 1 user user 538K Jan 31 2011 /local/opt/path1/sub/all/lib/file.jar
Но если я попробую это как
for i in `cat servers.txt` do scp file.jar user@$i: /local/opt/path1/sub/*/lib/; done
Это покажет ошибку как неоднозначную цель. После некоторого поиска в Google, я понял, что несколько целей не поддерживаются для cp или его вариантов, таких как scp. Теперь у меня есть идея сначала перечислить папки, используя команду find.
команда find будет похожа
find /local/opt/path1/sub/ -name file.jar
Но как реализовать это в моем сценарии?