首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示find命令的第一个找到的输出

显示find命令的第一个找到的输出
EN

Stack Overflow用户
提问于 2021-08-03 21:13:35
回答 1查看 42关注 0票数 1

我有一个脚本,它为我在系统上安装的所有Tomcat安装寻找RELEASE-NOTES*文件。但是,find正在各种安装路径中找到该文件的多个实例。是否有一种方法可以根据路径只显示每个唯一文件的第一个找到的实例?我想做一个彻底的搜索,所以代码中的路径需要保持不变。

代码:

代码语言:javascript
复制
#!/bin/sh

set -- "/opt" "/var"  "/usr"

    for _i in "$@"; do
        find_release=$(find $_i -maxdepth 5 -name RELEASE-NOTES* 2>/dev/null)
        for found in $find_release; do
            echo $found
        done
    done 

输出:

代码语言:javascript
复制
/opt/tomcat/webapps/docs/RELEASE-NOTES.txt
/opt/tomcat/webapps/ROOT/RELEASE-NOTES.txt
/opt/tomcat7/webapps/docs/RELEASE-NOTES.txt
/opt/tomcat7/webapps/ROOT/RELEASE-NOTES.txt
/opt/tomcat7/RELEASE-NOTES

期望输出:只需在每个路径中找到RELEASE-NOTES*的第一个实例,然后跳到下一个路径。

代码语言:javascript
复制
/opt/tomcat/webapps/docs/RELEASE-NOTES.txt
/opt/tomcat7/webapps/docs/RELEASE-NOTES.txt
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-03 21:37:32

您可以使用- quit

-quit

立即退出.-退出只是让查找立即停止。子进程将不会继续运行。..。

调整你的例子:

代码语言:javascript
复制
for _i in "/opt" "/var" "/usr"; do
    find "$_i" -maxdepth 5 -name "RELEASE-NOTES*" -print -quit
done
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68642851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档