Я хочу создать команду, которая использует результат другого, как это:

JNLP_FILE='find . -name viewerApplet.jnlp'
cp ${JAR_FILE} ../../sign-jar/$PROFILE/

Но я не знаю, как выполнить команду find для использования в команде 'cp'.

Любая помощь?

2 ответа2

2

Вы можете использовать знак доллара, за которым следует команда в круглых скобках [ $(<command>) ], чтобы вывод этой команды подавался непосредственно в командную строку:

cp $(find . -name viewerApplet.jnlp) ../../sign-jar/$PROFILE/


В качестве альтернативы вы можете использовать backticks (`):
cp `find . -name viewerApplet.jnlp` ../../sign-jar/$PROFILE/
2
find . -name viewerApplet.jnlp -exec cp {} ../../sign-jar/$PROFILE/ \;

-exec позволяет передавать результаты поиска другой команде. {} заменяет имя найденного файла. Обратите внимание, что если find имеет более одного результата, он скопирует их все в указанный каталог (предположительно, у вас есть только 1 файл с именем viewerApplet.jnlp, но exec также работает для таких вещей, как find . -name *.java -exec cp {} backups/ \;)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .