首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >《Linux系统中find 指令:全面的文件查找与处理指南》

《Linux系统中find 指令:全面的文件查找与处理指南》

作者头像
XPcode7
发布2025-10-23 14:55:51
发布2025-10-23 14:55:51
3370
举报

《Linux 系统中 find 指令:全面的文件查找与处理指南》

导读:在 Linux 系统的操作与管理中,高效地查找文件是一项必备技能。与我们熟悉的 Windows 系统中图形化搜索方式不同,Linux主要借助 find 指令来实现文件查找。本文将深入剖析 find指令的各种用法,从普通查询到按大小、时间、用户等多维度精准查找,还包括对查找结果的处理操作。无论是 Linux新手想要快速上手,还是有一定经验的使用者希望进一步提升文件管理效率,都能从本文中获取有价值的知识与技巧。

2.16 find文件查找

代码语言:javascript
复制
## 文件查找,我们在windows用的比较多,系统自带的搜索方式、第三方搜索工具everything等。
# linux上没有图形化界面,就要借助find指令来查了。
2.16.1 普通查询
代码语言:javascript
复制
# 普通查询
    find   /etc   -maxdepth 1  -type f  -name "pa*"
    命令   目录...   查找深度     类型   文件名称包含  
    # -type文件类型:f表示文件,不指定类型的话,文件和目录都会查找
    # -maxdepth查找深度:目录层级的意思,不指定的话,就按照最大深度来查找
    # "pa*": *表示匹配任意pa开头的内容,*号还可以写在开头
2.16.2 按照大小查找
代码语言:javascript
复制
## 按照文件大小查找(单位kMG,k要小写,MG要大写,不带单位就按照b单位来查找)

 1.查找大于100M的文件
    find / -type f -size +100M 
    [root@localhost tmp]# find / -type f -size +100M 
    /proc/kcore
    find: ‘/proc/1945/task/1945/fdinfo/6’: 没有那个文件或目录  
# proc是进程目录,有些进程运行起来之后能看到文件信息,程序运行结束之后,进程文件也消失了,所以看到proc的报错很正常,并且proc的权限很高,不是一般人可以访问的,所以也经常会报权限不够等错误信息,所以以后看到proc的报错直接忽略即可。
                    
	find: ‘/proc/1945/fdinfo/5’: 
## 没有那个文件或目录/sys/devices/pci000000/0000:00:0f.0/resource1_wc/sys:/devices/pci0000:00/0000:00:0f.0/resource1/
var/cache/yum/x86_64/7/updates/gen/primary_db.sqlite/usr/lib/locale/locale-archive
                                            
	[root@localhost tmp]# ls -h /usr/lib/locale/locale-archive   #大小确实超过了100M
        -rw-r--r--. 1 root root 102M 3月  15 20:10 /usr/lib/locale/locale-archive
            
            
    2.查找小于2k的文件
       find /root/nginx-1.20.2 -type f -size -2k
        
	3.查找大于50M同时小于100M的文件
        find /  -type f   -size +50M  -and -size -100M
2.16.3 忽略大小写
代码语言:javascript
复制
## 忽略大小写查询
	find /etc -maxdepth 1  -iname "pa*"  # i是ignore的简写,忽略的意思
2.16.4 根据修改时间查找文件
代码语言:javascript
复制
## 根据修改时间查找文件  
   [root@localhost ~]# stat 1.txt
     文件:"1.txt"
     大小:0         块:0         IO 块:4096   普通空文件
   设备:801h/2049d Inode:67108933   硬链接:1
   权限:(0644/-rw-r--r--) Uid:(    0/   root)   Gid:(    0/   root)
   环境:unconfined_u:object_r:admin_home_t:s0
   最近访问:2023-03-23 09:04:35.339235371 +0800 #Access time
   最近更改:2023-03-23 09:04:35.339235371 +0800 #Modify time
   最近改动:2023-03-23 09:04:35.339235371 +0800 #Change time
   创建时间:-
    
## 时间参数:atime mtime ctime amin mmin cmin  #(time是按照天来查找,min是按分钟查找)

# 时间单位为天
find /opt -type f -mtime -1   #-1代表一天以内,+1一天以前

# 时间单位为分钟
    [root@localhost ~]# find /root -type f -mmin -20
        /root/.bash_history
        /root/ReadMe.txt
        /root/.lesshst

# 查找1天之前,10天之内,修改过的文件
	[root@localhost ~]# find /etc/ -type f -mtime +1 -and -mtime -10
2.16.5 取反:!
代码语言:javascript
复制
## 取反: !
   [root@localhost ~]# find /root -type f -name "*.txt" # 找名称以.txt结尾的文件
   		/root/1.txt
   		/root/学习前准备.txt
        
   [root@localhost ~]# find /root -type f ! -name "*.txt" # 找名称中不是.txt结尾的文件
   		/root/.bash_logout
    	 /root/.bash_profile
    
   [root@localhost ~]# mkdir jaden
   [root@localhost ~]# mkdir wulaoban
   [root@localhost ~]# find /root -type f # 找文件
   /root/.bash_logout
   /root/.bash_profile

 [root@localhost ~]# find /root ! -type f # 找文件夹
   /root/jaden
   /root/wulaoban
2.16.6 根据用户来查找文件
代码语言:javascript
复制
## 根据用户来查找文件
   [root@localhost ~]# useradd jaden
   [root@localhost ~]# find / -user jaden # 查找属于jaden用户的所有目录和文件
   /var/spool/mail/jaden
   /home/jaden
   /home/jaden/.bash_logout
   /home/jaden/.bash_profile
   /home/jaden/.bashrc
    
## 根据用户组来查
   [root@localhost ~]# find / -group jaden
2.16.7 对找出的文件进行处理
代码语言:javascript
复制
## 对找出的文件进行处理

# 格式:正常的find语句+操作exec

# 比如我们查找到了一些病毒文件,想直接删除  
    find /tmp -type f -size +10K -exec rm rf {} \; 
        # {}表示我们找到的那些文件,\;是这样的:正常exec语句最后要分号结尾,但是分号在linux中有特殊的意义
        ## 比如一次性执行两个指令可以 ls -lh;id,这样执行,所以要对;进行转义,意思是不要将;作为shell指令的分隔
        ## \就是转义符号。例子:
        
   [root@localhost tmp]# find /tmp -name "vm*" -exec rm -rf {} \;
        find: ‘/tmp/vmware-root_560-2957190359’: 没有那个文件或目录
        find: ‘/tmp/vmware-root_555-4282367637’: 没有那个文件或目录
        find: ‘/tmp/vmware-root_631-4021718894’: 没有那个文件或目录
   [root@localhost tmp]# ls
       ks-script-ed2ODG
       nginx_jaden.tar.gz
       systemd-private-d38b668730bf4589896221daead5dbea-chronyd.service-be3NkFyum.log

# 下面的例子就不演示了。
find /root -type f -mmin -30 ! -name ".*"  -exec rm {} \;
find /root  -maxdepth 1  -type d  -name "Apa*"   -mmin -30 -exec cp -a {} /tmp 
\; # 复制到tmp目录中

希望这篇文章能够为你在探索 Linux系统的道路上提供有力的帮助,让你在操作 Linux 系统时更加得心应手。 我是旺仔SeC,是一名热衷于系统技术的博主,对 Linux系统有着深入的研究和丰富的实践经验。我致力于分享各种系统相关的知识和技巧,帮助大家解决在使用过程中遇到的各种问题。如果你觉得这篇文章对你有所帮助,欢迎点赞、收藏和分享哦 同时,也希望你能关注我的博客,我会持续为大家带来更多优质的系统技术文章,包括但不限于 Linux> 系统的深入探索、系统优化、故障排除以及各种有趣的实战案例。 如果你在学习和使用 Linux 系统的过程中遇到任何问题,或者对某些内容有疑问,欢迎在评论区留言,我会尽力为大家解答。让我们一起在系统技术的海洋中遨游,不断提升自己的技能水平,共同探索系统世界的奥秘 再次感谢大家的阅读,期待我们下次再见!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-02-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 《Linux 系统中 find 指令:全面的文件查找与处理指南》
    • 2.16 find文件查找
      • 2.16.1 普通查询
      • 2.16.2 按照大小查找
      • 2.16.3 忽略大小写
      • 2.16.4 根据修改时间查找文件
      • 2.16.5 取反:!
      • 2.16.6 根据用户来查找文件
      • 2.16.7 对找出的文件进行处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档