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

时间:2017-10-05 15:07:18

标签: 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

1 个答案:

答案 0 :(得分:3)

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

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

有关详细信息,请参阅man page-execdir选项在包含pom.xm的目录中运行给定的命令。这将通过整个目录树递归;为了使它更完全等同于你的shell脚本,你可以限制它下降的深度:

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