我正在尝试创建一个将执行以下操作的脚本 1- 执行 mvn clean 2- 执行 mvn 包 3- 找到 .jar 文件并将其移动到在命令行上作为 arg 传递的目标文件夹
#!/bin/bash
destination=“$1”
#Clean
mvn clean
#Package
mvn package
#Transfer the generated jar file to the destination folder
find . -name “*.jar” | xargs cp -t $destination
这可以正常运行 Maven 脚本,但是当我转到目标文件夹时,文件没有被复制。
我知道 .jar 文件在那里,并且在我打印出 find 的结果时找到了。 -名称“*.jar”
:
./target/QuoteTool-0.0.1-SNAPSHOT.jar
但是复制文件的步骤没有正确发生。
非常感谢任何帮助。
注意:我用的是Mac
最佳答案
您不需要使用 xargs
,只需在 find
命令本身中使用 -exec
选项即可。
还有 Unicode Windows 风格的双引号(参见 Unicode Utilities ),“*.jar”
应该用作 "*.jar"
find . -type f -name "*.jar" -exec cp -t "$destination" "{}" +
在上面的示例中,cp
与 +
over exec
将避免 fork cp
用于找到的每个 jar
文件,而是一次性将找到的所有文件复制到目标位置。
关于linux - 找到文件后如何复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45212515/