find 命令入门:按名字、大小、时间找文件

举报
yd_250779715 发表于 2026/11/11 06:10:49 2026/11/11
【摘要】 文件一多,最头疼的是文件找不着:日志散在几个目录,备份不知藏在哪,磁盘快满了也不知是谁占了地方。用 find 命令,告诉它从哪里找、按什么条件找,就能把符合条件的文件列出来。一、基本语法find 的写法是:find 起始目录 条件 动作。不加条件,只给目录,就会列出下面所有文件和子目录:find /var/log只看当前目录,起点写成一个点:find .不写动作时,find 默认打印结果,也...

文件一多,最头疼的是文件找不着:日志散在几个目录,备份不知藏在哪,磁盘快满了也不知是谁占了地方。用 find 命令,告诉它从哪里找、按什么条件找,就能把符合条件的文件列出来。

一、基本语法

find 的写法是:find 起始目录 条件 动作。不加条件,只给目录,就会列出下面所有文件和子目录:

find /var/log

只看当前目录,起点写成一个点:

find .

不写动作时,find 默认打印结果,也就是 -print 的效果。

二、按名字找

按名字用 -name,支持星号通配符。找当前目录下所有日志文件:

find . -name "*.log"

星号代表任意字符,也会匹配子目录里的日志。大小写不确定时用 -iname,会同时匹配 Report 和 report。加 -type f 只找普通文件,-type d 只找目录。

三、按大小找

按大小用 -size,单位 k 是 KB,M 是 MB,G 是 GB。加号表示大于,减号表示小于。找大于 100MB 的文件:

find /home/user -type f -size +100M

条件可以叠加,找 1MB 到 10MB 之间的文件:

find . -type f -size +1M -size -10M

四、按时间找

-mtime 按修改时间算天数,-mmin 按分钟算。减号表示以内,加号表示以外。找 7 天内修改过的文件:

find . -type f -mtime -7

-newer 可以找比某个文件更新的文件,例如找出比部署脚本更新的文件:

find . -type f -newer deploy.sh

五、组合与后续动作

多个条件默认同时满足。想表达或者,用 -o;想排除,用感叹号。-exec 可以把找到的文件交给另一条命令,例如逐个显示详细信息:

find . -type f -name "*.log" -exec ls -lh {} \;

大括号代表每一个找到的文件。-delete 能直接删除,但风险很大:务必先不加它跑一遍,确认无误再补上。

六、完整例子

找出 7 天内修改过、大于 10MB 的日志文件:

find . -type f -name "*.log" -size +10M -mtime -7

小结:find 的思路是起点定范围,条件定特征,动作定结果。先记住 -name、-size、-mtime 这三组,每次只加一个条件,跑一遍再叠加。现在就打开终端,照着例子各试一条,亲手跑出来的命令记得最牢。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。