Linux 迭代目录以查找pom.xml文件

Linux 迭代目录以查找pom.xml文件,linux,bash,shell,Linux,Bash,Shell,目前,我有一个命令,它在目录列表上循环(我不知道目录的名称),然后cd进入目录,最后执行maven install命令。但是,我注意到只有一个目录包含pom.xml。没有必要在其他目录上运行maven命令。有没有一种方法可以在目录中循环并在保存pom.xml的目录中停止,然后执行maven命令并中断循环 for d in */ ; do (cd "$d" && maven install -Dmaven.test.skip=true); done 您可以使用find命令替换循环

目前,我有一个命令,它在目录列表上循环(我不知道目录的名称),然后
cd
进入目录,最后执行
maven install
命令。但是,我注意到只有一个目录包含
pom.xml
。没有必要在其他目录上运行maven命令。有没有一种方法可以在目录中循环并在保存
pom.xml
的目录中停止,然后执行maven命令并中断循环

for d in */ ; do (cd "$d" && maven install -Dmaven.test.skip=true); done

您可以使用
find
命令替换循环。例如:

find * -name pom.xml -execdir maven install -Dmaven.test.skip=True \;
有关详细信息,请参阅。
-execdir
选项在包含
pom.xm
的目录中运行给定的命令。这将在整个目录树中递归;要使其更精确地等效于shell脚本,可以限制其下降的深度:

find * -name pom.xml -maxdepth 1 -execdir maven install -Dmaven.test.skip=True \;

您可以使用
find
命令替换循环。例如:

find * -name pom.xml -execdir maven install -Dmaven.test.skip=True \;
有关详细信息,请参阅。
-execdir
选项在包含
pom.xm
的目录中运行给定的命令。这将在整个目录树中递归;要使其更精确地等效于shell脚本,可以限制其下降的深度:

find * -name pom.xml -maxdepth 1 -execdir maven install -Dmaven.test.skip=True \;

可能与、、等重复。可能与、、等重复。知道我为什么得到这个
find吗:相对路径$path包含在path环境变量中,与find的-execdir操作结合使用是不安全的。请从$PATH中删除该条目
?我是通过
工作区内的jenkins groovy脚本运行该命令的
解释了当您在
$PATH
中包含的目录中进行迭代时,
-execdir
是一个问题。知道我为什么会得到这个
查找:相对路径$PATH包含在PATH环境变量中,与find的-execdir操作结合使用是不安全的。请从$PATH中删除该条目
?我是通过
工作区内的jenkins groovy脚本运行该命令的
解释了当您在
$PATH
中包含的目录中进行迭代时,
-execdir
是一个问题。