当前位置:首页>Linux>5分钟掌握Linux find命令:高效查找文件的秘诀

5分钟掌握Linux find命令:高效查找文件的秘诀

  • 2026-10-01 12:27:13
5分钟掌握Linux find命令:高效查找文件的秘诀

动动小手  点个关注~

在 Linux 系统中,find 是一个非常强大且常用的命令,常用于在文件系统中查找文件和目录。无论是查找特定名称的文件、按权限或时间筛选,还是执行批量操作,find 都能胜任。

前面也陆陆续续的介绍过一些find命令,但都是一些零散的命令。

本文将为你系统地介绍 find 命令在linux中使用的语法、常用选项和实用示例,帮助你快速掌握这一利器。一、find 命令基本语法

find [搜索路径] [查找条件] [处理动作]  #find基本语法结构
  • ‌搜索路径‌:指定要搜索的目录,默认为当前目录。

  • 查找条件‌:定义查找的标准,如文件名、类型、大小、权限等。

  • ‌处理动作‌:对符合条件的文件执行操作,如显示、删除、重命名等

二、常用查找条件1. 按文件名查找-name:按文件名查找,支持通配符 *、?、[]

*:代表匹配任意字符,*.txt代表以txt后缀的文件。

?:代表匹配一个字符,ab?.txt代表ab后面只有一个字符。

[]:匹配字符集中的任意一个,如[0-9]代表匹配任意一个数字。

find . -name "*.txt"     #查找当前目录下以txt后缀的文件 
find . -iname "Ab*.txt"   #查找以ab开头的txt文件,不区分字母的大小写  
find . -name "ab?.txt"   #查找当前目录下以ab开头,中间有个字符,并以txt后缀的文件 ,注意为英文? 
find . -name "[0-9]*.txt"  #查找以数字开头的后为txt的文件 

2. 按文件类型查找-type f:普通文件。-type d:目录。-type l:符号链接。-type s:套接字文件。-type b:块设备文件。-type c:字符设备文件。-type p:命名管道文件。

find . -type f -name "*.log"   #查找以log为后缀的普通文件

3. 按文件大小查找-size +N:大于 N 的文件。-size -N:小于 N 的文件。-size N:等于 N 的文件。单位支持:c(字节)、k(KB)、M(MB)、G(GB)。

find . -size +100M  #查找当前目录大于100M的文件

4. 按时间查找-mtime:修改时间(单位为天)。-atime:访问时间。-ctime:状态改变时间。-mmin:修改时间(单位为分钟)。-amin:访问时间(单位为分钟)。-cmin:状态改变时间(单位为分钟)。

find . -mtime -7    # 查找最近7天修改的文件
find . -mmin +30    # 查找30分钟前修改的文件

备注:文件太多,为便于演示,只显示了前10个。

5. 按权限查找

find . -perm 755  #查找当前目录下权限是755的文件

6. 按属主或属组查找-user:按文件属主查找。-group:按文件属组查找。

find . -user ftpuser  #查找当前目录下属主是ftpuser的文件
find . -group root  #查找当前目录文件属组是ftpuser的文件

三、常用处理动作-print:默认动作,输出匹配结果。-exec:对每个匹配文件执行命令。-ok:与 -exec 类似,但会提示用户确认。-delete:删除匹配的文件。-ls:以 ls -l 格式显示文件。

find . -name "*.tmp" -exec rm {} \;  #查找当前目录后缀是tmp的文件并删除

四、高级用法示例1. 查找空文件或空目录

find . -type f -empty  #查找当前目录下的空文件
find . -type d -empty  #查找当前目录下的空目录

2. 查找多个目录下的文件

find /home /var -name "*.conf"  #查找home和var下的后缀是conf的文件

3. 按文件权限和修改时间组合查找

find . -type f -perm 755 -mtime +10   #查找当前目录下权限是755修改时间在10天以上的文件

4. 限制搜索层级

find . -maxdepth 2 -name "*.sh" #查找当前目录下最深2级的以sh为后缀的文件

5. 按 inode 查找

find . -inum 50812070    #查找inode值是50812070的文件

五、实用场景1. 清理临时文件

find /tmp -type f -mtime +7 -delete  #将7天前的tmp文件下的内容进行删除

备注:里面部分是镜像只读文件,所以无法删除2. 批量重命名文件

find . -name "*.bak" -exec mv {} {}.old \; #将当前目录下的bak后缀的文件命名为old后缀
find . -name "*.bak" -exec mv {} {}.old + #+适合批量执行的时候,能够提高效率 

3. 查找大文件

find . -type f -size +100M -exec ls -lh {} \; #查找当前目录下大于100M的文件执行ls -lh命令 

六、总结以上只演示了find的常规用法,还有许多复杂用法可以结合实际情况进行使用。总的来说。find 命令是 Linux 系统中非常强大的文件查找工具,掌握其语法和常用选项,可以极大提升文件管理效率。无论是日常维护还是相关脚本编写,find 都是不可或缺的利器。

‌注意事项:

使用 -exec 时,\之前有个空格,并且注意结尾为 \;,这是为了防止 shell 解析错误,如果要执行多个命令,可以使用 + 替代 \;,以提高效率。如需进一步了解,可参考 man find 或查阅相关文档。希望这篇文章能帮助你更好地使用 find 命令,提升 Linux 操作效率!

最新文章

随机文章