如何在 Linux 中用另一个命令的结果替换一个命令?

如何在 Linux 中用另一个命令的结果替换一个命令?

我想创建一个使用另一个命令的结果的命令,如下所示:

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

但我不知道如何执行用于‘cp’命令的find命令。

有什么帮助吗?

答案1

您可以使用美元符号后跟括号 [ ] 中的命令,$(<command>)将该命令的输出直接输入到命令行中:

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


或者,您可以使用反引号 (`):

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

答案2

find . -name viewerApplet.jnlp -exec cp {} ../../sign-jar/$PROFILE/ \;

-exec 允许您将 find 的结果提供给另一个命令。{} 代表找到的文件的名称。请注意,如果 find 有多个结果,它会将它们全部复制到指定的目录中(假设您只有一个名为 viewerApplet.jnlp 的文件,但 exec 也适用于类似的东西find . -name *.java -exec cp {} backups/ \;

相关内容