我有一个脚本,它为我在系统上安装的所有Tomcat安装寻找RELEASE-NOTES*文件。但是,find正在各种安装路径中找到该文件的多个实例。是否有一种方法可以根据路径只显示每个唯一文件的第一个找到的实例?我想做一个彻底的搜索,所以代码中的路径需要保持不变。
代码:
#!/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 输出:
/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*的第一个实例,然后跳到下一个路径。
/opt/tomcat/webapps/docs/RELEASE-NOTES.txt
/opt/tomcat7/webapps/docs/RELEASE-NOTES.txt发布于 2021-08-03 21:37:32
您可以使用- quit
-quit
立即退出.-退出只是让查找立即停止。子进程将不会继续运行。..。
调整你的例子:
for _i in "/opt" "/var" "/usr"; do
find "$_i" -maxdepth 5 -name "RELEASE-NOTES*" -print -quit
donehttps://stackoverflow.com/questions/68642851
复制相似问题