Linux系统文件查找技巧!适用飞牛OS/群辉/Unraid/Ubuntu

2025-03-05 11:16:13 8点赞 63收藏 1评论

使用飞牛OS的相册功能,好奇相册缩略图缓存大小,和immich相比,文件大小占用

使用命令uname -a,确认系统是否适用本文章 ,Linux通用,建议收藏

飞牛os系统飞牛os系统

在 使用Linux 系统中,我们经常需要查找文件,例如:

  • 查找某个配置文件(nginx.conf)

  • 找到最近修改的日志文件

  • 搜索特定类型的文件(如 .jpg 图片)

  • 查找占用大量磁盘空间的文件


1. find 命令:实时查找文件(强大但可能较慢)

✅ 适用场景:

  • 需要实时查找文件(不依赖索引)

  • 搜索最近修改的文件

  • 大小、时间、权限等条件过滤文件

📌 基础用法

查找指定名称的文件:

find / -name "photo.db"

🔹 作用:从 /(根目录)开始搜索 photo.db 文件

模糊查找(不区分大小写):

find /home -iname "readme.txt"

🔹 作用:查找 home 目录下大小写不敏感的 readme.txt 文件(如 ReadMe.TXT 也能匹配)

查找最近 10 分钟修改的文件:

find /var/log -type f -mmin -10

🔹 作用:查找 /var/log 目录下最近 10 分钟被修改过的文件

查找大于 500MB 的文件:

find / -type f -size +500M

🔹 作用:搜索全系统大于 500MB 的文件


⚠ find 的缺点:

速度慢,因为 find 需要遍历整个磁盘
可能需要 sudo 权限,否则会因为权限问题跳过某些文件

🚀 find 提速优化

限制搜索范围(避免扫描整个 / 根目录):

find /home/user -name "*.txt"

限制递归深度(避免搜索太深的目录):

find /home -maxdepth 3 -name "*.log"

排除不相关目录(跳过系统目录提高速度):

find / -path "/proc" -prune -o -name "*.conf" -print


2. locate 命令:超快文件查找(基于索引)

✅ 适用场景:

  • 需要快速查找文件

  • 搜索已存在的文件

  • 不适用于刚创建的文件(因为它依赖数据库索引)

✅ 如果 locate 未安装,先安装它:

sudo apt install mlocate

✅ 更新数据库,使其包含最新文件信息:

sudo updatedb

📌 基础用法

查找 photo.db 文件(比 find 快很多!)

locate photo.db

🔹 作用:快速返回 photo.db 文件的路径

查找 .log 日志文件:

locate "*.log"

🔹 作用:快速找到所有 .log 文件

忽略大小写搜索(匹配 ReadMe.TXT / README.txt):

locate -i "readme"


⚠ locate 的缺点

不能实时查找文件(需要更新数据库)
新创建的文件找不到,除非手动更新索引


3. fd 命令(比 find 更快!)

✅ 适用场景:

  • 需要比 find 更快的搜索

  • 更简洁的命令语法

  • 可忽略 .gitignore 文件,适用于代码目录

✅ 安装 fd(比 find 快 5-10 倍!)

sudo apt install fd-find # Ubuntu/Debian

sudo yum install fd # CentOS/RHEL

brew install fd # macOS

📌 基础用法

查找 photo.db(语法比 find 简单):

fd "photo.db" /

查找所有 .log 文件:

fd ".log" /var/log

忽略大小写搜索:

fd -i "readme"


⚠ fd 的缺点

可能需要手动安装(大多数 Linux 发行版默认没有 fd)
无法按修改时间、文件大小等搜索(不如 find 灵活)


4. du 命令(查找占用空间大的文件)

✅ 适用场景:

  • 需要查找占用磁盘空间最大的文件

  • 清理无用的大文件

📌 基础用法

查找 /home 目录下最大的 10 个文件:

du -ah /home | sort -rh | head -10

🔹 作用:显示 /home 目录下占用空间最大的 10 个文件/目录

查找 /var/log 目录占用超过 100MB 的文件:

find /var/log -type f -size +100M


5. grep 结合 find(查找文件 + 关键词)

✅ 适用场景:

  • 需要在找到的文件中搜索特定内容

📌 示例

查找 /var/log 目录中包含 "ERROR" 的日志文件

find /var/log -type f -name "*.log" | xargs grep "ERROR"

🔹 作用:先用 find 找到 .log 文件,再用 grep 查找包含 "ERROR" 关键词的文件


🚀 推荐使用场景

  • 查找新创建的文件 ➜ find

  • 快速查找已存在的文件 ➜ locate

  • find 更快的搜索 ➜ fd

  • 查找大文件 ➜ du

  • 查找文件内容 ➜ find + grep

掌握这些命令,你就能高效查找 Linux 文件,大幅提升工作效率!💡🚀

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
1评论

  • 精彩
  • 最新
  • 评论一下吧,收藏了

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
63
扫一下,分享更方便,购买更轻松