当前位置:首页>Linux>瑞芯微——Linux的常用指令--find

瑞芯微——Linux的常用指令--find

  • 2026-09-15 23:27:27
瑞芯微——Linux的常用指令--find

Linux 超级神器 find:文件藏再深,1 秒给你揪出来

作为一个程序员,尤其是 Linux 程序员,你一定有过这种 “抓狂时刻”: 项目目录里文件成百上千,明明记得有个叫 debug_log.c 的文件,却翻遍了子目录都找不到; 或者想找出所有三天前修改过的 .h 文件,手动找简直是大海捞针。

这时候,你需要一个 Linux 下的 “文件搜索神器” —— 它就是 find。

在我看来,find 就像 Linux 世界里的 “超级侦探”, 不管你的文件藏在哪个犄角旮旯,只要给它一点线索(文件名、大小、修改时间……), 它就能把文件给你 “揪” 出来,功能强大到能满足你几乎所有的文件搜索需求。

下面开始看例子。

还是用我们熟悉的 mywork 目录,这里嵌套着 mytest、test 等子目录,文件一堆。 这时候输入find . -name "test.c"敲回车 —— 嘿,不管 test.c 藏在哪个子目录里,find 都会把它的完整路径列出来,就像给文件装了定位器。

我们再试试按类型搜索: 输入 find . -type d,一眨眼的功夫,当前目录下所有的子目录都被列了出来,找目录结构的时候超好用。

接着试试组合条件: 输入 find . -name ".c" -and -size +1M, 这时候 find 会帮你找出所有 .c 结尾且大小超过 1M 的文件,精准筛选,不用你一个个去看文件大小。

看到这里,相信大家已经感受到 find 的强大了。 接下来就看看我日常最常用的几个 find “核心用法”:


find 的核心用法(开发必背,直接抄)

1. 按文件名搜索

find 路径 -name "文件名"

比如:find ~ -name "config.h"在用户家目录下搜索 config.h 文件。

加上 -iname 可以忽略大小写:find . -iname "Test.c"能匹配 test.c、Test.c、TEST.c 等。


2. 按文件类型搜索

find 路径 -type 类型

  • -type f:搜索普通文件
  • -type d:搜索目录

比如:find . -type d列出当前目录下所有子目录。


3. 按文件大小搜索

find 路径 -size 大小

  • +n 大于
  • -n 小于
  • 单位:c 字节、k KB、M MB、G GB

比如:find . -size +10M搜索当前目录下大于 10MB 的文件。


4. 按修改时间搜索

find 路径 -mtime 天数

  • -mtime -n n 天以内修改
  • -mtime +n n 天以前修改

比如:find . -mtime -1搜索一天内修改过的文件。


5. 组合条件搜索

-and、-or、-not 自由组合

例子:find . -name ".c" -and -not -name "test*"找出所有 .c 但排除 test 开头的文件。


6. 对结果直接执行命令

-exec 命令 {} ;

例子:find . -name ".bak" -exec rm {} ;删除所有 .bak 结尾文件(慎用!)


e开发小技巧(效率翻倍)

限制搜索深度

find . -maxdepth 2 -name ".c"只搜当前目录 + 一级子目录,不往深层钻,超快。

配合 grep 搜代码内容(超好用)

find . -name "*.c" | xargs grep "main"在所有 C 文件里搜 main 函数。

按权限搜索

find . -perm 755找出权限为 755 的可执行文件。


总结

find 的核心价值,就是帮你在 Linux 的文件海洋里 “精准定位”。 不管是找文件、筛目录,还是批量操作文件,它都能胜任。

记住常用的:

  • -name 文件名
  • -type 类型
  • -mtime 时间
  • -exec 执行命令

你的文件搜索效率直接起飞,再也不用为找文件发愁。

find 的大致用法就讲到这里, 大家有什么常用的 find 组合技巧,欢迎在评论区交流~

最新文章

随机文章