我在Jenkins Maven项目的目标目录中有一个jar文件。
PROJ-0.0.2-SNAPSHOT.jar
。
还有一个名为
的文件PROJ-0.0.2-SNAPSHOT.jar.original
我只选择PROJ-0.0.2-SNAPSHOT.jar
文件。为此,我使用下面的命令。
ls target | grep \.jar$
我将输出作为我的要求。但是我不知道它是否有效。谁能澄清我的疑问?
答案 0 :(得分:0)
可能会更有效率(因为避免再启动两个进程ls
和grep
,并且解析ls输出不是一个好习惯)。
for file in target/*.jar; do
[[ -f $file ]] && {
echo "${file#target/}" # or do something with $file
}
done
关于准确性,否则,在ls target | grep \.jar$
中,反斜杠是bash的转义字符,就像ls target | grep '.jar$'
一样,用于在正则表达式ls target | grep '\.jar$'
中转义点