linux - 遍历目录以查找 pom.xml 文件

标签 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 命令替换您的循环。例如:

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/

相关文章:

linux - 请帮忙修改linux下的shell脚本

linux - 定位命令与查找命令有何不同?

bash - Grep spotify songname 从 html doc 到文本文件

linux - 如何避免 iconv 错误来停止我的程序

c - Linux的systemd的udev使用的 "keyboard-keys-from-name.h"在哪里?

linux - 通过脚本中的参数将多个文本文件连接到 Bash 中的单个文件中

c - 我怎样才能暂停然后恢复对 `sleep` 的调用

linux - 执行文件的问题

git - git无法克隆:远端意外挂断

bash - 在 shell 脚本中添加计数器