目前,我有一个循环遍历目录列表(我不知道其名称)然后 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 \;
参见 man page了解详情。 -execdir
选项在包含 pom.xm
的目录中运行给定的命令。这将遍历整个目录树;为了使它更准确地等同于您的 shell 脚本,您可以限制它下降的深度:
find * -name pom.xml -maxdepth 1 -execdir maven install -Dmaven.test.skip=True \;
关于linux - 遍历目录以查找 pom.xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46588995/