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

1976 / 2025-10-24 08:14:55 世界杯介绍

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

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

2.16 find文件查找代码语言:javascript代码运行次数:0运行复制## 文件查找,我们在windows用的比较多,系统自带的搜索方式、第三方搜索工具everything等。

# linux上没有图形化界面,就要借助find指令来查了。2.16.1 普通查询代码语言:javascript代码运行次数:0运行复制# 普通查询

find /etc -maxdepth 1 -type f -name "pa*"

命令 目录... 查找深度 类型 文件名称包含

# -type文件类型:f表示文件,不指定类型的话,文件和目录都会查找

# -maxdepth查找深度:目录层级的意思,不指定的话,就按照最大深度来查找

# "pa*": *表示匹配任意pa开头的内容,*号还可以写在开头2.16.2 按照大小查找代码语言:javascript代码运行次数:0运行复制## 按照文件大小查找(单位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 -100M2.16.3 忽略大小写代码语言:javascript代码运行次数:0运行复制## 忽略大小写查询

find /etc -maxdepth 1 -iname "pa*" # i是ignore的简写,忽略的意思2.16.4 根据修改时间查找文件代码语言:javascript代码运行次数:0运行复制## 根据修改时间查找文件

[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 -102.16.5 取反:!代码语言:javascript代码运行次数:0运行复制## 取反: !

[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/wulaoban2.16.6 根据用户来查找文件代码语言:javascript代码运行次数:0运行复制## 根据用户来查找文件

[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 jaden2.16.7 对找出的文件进行处理代码语言:javascript代码运行次数:0运行复制## 对找出的文件进行处理

# 格式:正常的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

系统的过程中遇到任何问题,或者对某些内容有疑问,欢迎在评论区留言,我会尽力为大家解答。让我们一起在系统技术的海洋中遨游,不断提升自己的技能水平,共同探索系统世界的奥秘

再次感谢大家的阅读,期待我们下次再见!