方案1:查整个分区(推荐) 例如你要查 sdc3(挂载到 /) 上所有:
oneapi-xxxx.log
文件所在目录:
find / -xdev -type f -name "oneapi-*.log" 2>/dev/null
参数解释:
/
从根目录开始

-xdev
不跨文件系统
因为:
/          -> sdc3
/boot      -> sdb1
/mnt/disk_b -> sdb3
所以:
find / -xdev ...
只会搜索:
sdc3
不会进入:
/boot
/mnt/disk_b
只看目录 例如结果:
/www/logs/oneapi-api.log
/www/server/oneapi-202506.log
/opt/oneapi/logs/oneapi-error.log
只显示目录:
find / -xdev -type f -name "oneapi-*.log" -printf '%h\n' 2>/dev/null | sort -u
输出:
/opt/oneapi/logs
/www/logs
/www/server
方案2:查某个挂载点 例如只查:
sdb3

/mnt/disk_b
执行:
find /mnt/disk_b -xdev -type f -name "oneapi-*.log"
方案3:查所有日志并显示大小
find / -xdev -type f -name "oneapi-*.log" -exec ls -lh {} \; 2>/dev/null
输出类似:
-rw-r--r-- 1 root root 1.2G /www/logs/oneapi-api.log
-rw-r--r-- 1 root root 500M /opt/oneapi/logs/oneapi-error.log
方案4:统计每个目录下有多少个 oneapi 日志
find / -xdev -type f -name "oneapi-*.log" -printf '%h\n' 2>/dev/null | sort | uniq -c | sort -nr
例如:
25 /www/logs
12 /opt/oneapi/logs
3  /root
如何理解“查某块磁盘” Linux 实际不是按磁盘查,而是按:
挂载点

对应文件系统

对应磁盘分区
你当前:
sdc3 -> /
sdb1 -> /boot
sdb3 -> /mnt/disk_b
所以: 查 sdc3:
find / -xdev -name "oneapi-*.log"
查 sdb3:
find /mnt/disk_b -xdev -name "oneapi-*.log"
查 sdb1:
find /boot -xdev -name "oneapi-*.log"
⸻ 如果你还想查:
oneapi-*.log
oneapi*.log
*.log
中最大的文件(比如日志占了几十GB),可以直接用:
find / -xdev -type f -name "oneapi-*.log" -exec du -h {} + 2>/dev/null | sort -hr
这样会按大小排序,把最大的 oneapi 日志找出来。

查询

按照文件目录组织给我只需给我哪些文件夹目录下大于50MB的文件夹即可,包含的日志文件都是oneapi-xxxxx.log格式,并给出该文件夹下的符合条件的数量 用这个命令:按目录聚合,只输出目录和该目录下符合条件的数量。
find / -type f -name "oneapi-*.log" -size +50M -printf '%h\n' 2>/dev/null | sort | uniq -c | sort -nr
输出示例:
12 /www/logs
5  /var/log/oneapi
2  /mnt/disk_b/logs
含义:
12 /www/logs
表示 /www/logs 目录下有 12 个 大于 50MB 的 oneapi-*.log 文件。 如果你只想查系统盘 /dev/sdc3,也就是 / 分区,不跨到 /mnt/disk_b/boot
find / -xdev -type f -name "oneapi-*.log" -size +50M -printf '%h\n' 2>/dev/null | sort | uniq -c | sort -nr
如果只查数据盘 /dev/sdb3
find /mnt/disk_b -xdev -type f -name "oneapi-*.log" -size +50M -printf '%h\n' 2>/dev/null | sort | uniq -c | sort -nr
同时看目录文件数量总大小
find / -type f -name "oneapi-*.log" -size +50M -exec du -b {} + 2>/dev/null \
| awk '
{
size=$1
file=$2
sub(/\/[^\/]+$/,"",file)
cnt[file]++
sum[file]+=size
}
END{
printf "%-10s %-12s %s\n","COUNT","SIZE(GB)","DIR"
for(i in cnt)
printf "%-10d %-12.2f %s\n",cnt[i],sum[i]/1024/1024/1024,i
}' | sort -k2 -hr
查看目录/www/wwwroot/workerapi.org/logs下 大于 20MB 的 oneapi 日志
find /www/wwwroot/workerapi.org/logs \
-type f \
-name "oneapi-*.log" \
-size +2M \
-exec du -h {} + | sort -hr

Date:
Words:
769
Time to read:
3 mins