当前位置: 首页 > news >正文

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

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

2.16 find文件查找

代码语言:javascript

AI代码解释

## 文件查找,我们在windows用的比较多,系统自带的搜索方式、第三方搜索工具everything等。 # linux上没有图形化界面,就要借助find指令来查了。
2.16.1 普通查询

代码语言:javascript

AI代码解释

# 普通查询 find /etc -maxdepth 1 -type f -name "pa*" 命令 目录... 查找深度 类型 文件名称包含 # -type文件类型:f表示文件,不指定类型的话,文件和目录都会查找 # -maxdepth查找深度:目录层级的意思,不指定的话,就按照最大深度来查找 # "pa*": *表示匹配任意pa开头的内容,*号还可以写在开头
2.16.2 按照大小查找

代码语言:javascript

AI代码解释

## 按照文件大小查找(单位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

AI代码解释

## 忽略大小写查询 find /etc -maxdepth 1 -iname "pa*" # i是ignore的简写,忽略的意思
2.16.4 根据修改时间查找文件

代码语言:javascript

AI代码解释

## 根据修改时间查找文件 [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

AI代码解释

## 取反: ! [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

AI代码解释

## 根据用户来查找文件 [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

AI代码解释

## 对找出的文件进行处理 # 格式:正常的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系统的道路上提供有力的帮助,

http://www.jsqmd.com/news/470936/

相关文章:

  • MT5 Zero-Shot中文改写工具实操手册:Temperature/Top-P参数详解与调优
  • DLSSTweaks新手教程:解锁DLSS高级功能的实用指南
  • 数字孪生软件的开发
  • 如何解决ControlNet显存占用问题?FP16版本实战指南
  • Linux系统运行Photoshop全攻略:从部署到优化的开源方案
  • 突破系统壁垒:DMG2IMG实现跨平台苹果镜像文件高效处理
  • Ostrakon-VL-8B技术解析:从计算机组成原理看模型推理优化
  • 告别重复造轮子:用快马AI根据idea一键生成项目基础代码
  • OFD文档跨平台流通难题如何破解?开源格式转换工具提供轻量级解决方案
  • HY-MT1.5-1.8B电商应用案例:跨境商品描述自动翻译部署步骤
  • 3个高效方案:NCM文件转MP3彻底解决音乐跨平台播放难题
  • AnimateDiff商业场景应用:电商产品动态展示视频制作全流程
  • SAM3快速部署指南:一键启动Web界面,上传图片即用
  • PS3手柄Windows驱动配置指南:DsHidMini驱动全方位解决方案
  • 如何用轻量级图像工具实现高效编辑?JPEGView的全方位使用指南
  • 高效制作Linux启动盘:Deepin Boot Maker实用全攻略
  • SiameseUIE制造业应用:设备故障报告分析
  • TranslateGemma-27B提示工程指南:专业翻译Prompt设计技巧
  • SteamDeck_rEFInd:让Steam Deck实现多系统无缝切换的开源引导工具
  • 实测WAN2.2文生视频:中文提示词+8种风格,轻松制作电商短视频
  • CosyVoice 8G性能优化实战:从架构设计到代码级调优
  • Git-RSCLIP应用案例:自动监测农田变化,环境监控效率提升70%
  • OpenClaw用一周,API账单直接爆炸:90%的人根本不知道自己在“乱烧钱“
  • AlphaFold3在A100 GPU上的Docker部署全攻略
  • 2026年通风柜建设厂家权威推荐:如何选择靠谱的实验室整体解决方案服务商? - 深度智识库
  • 百川2-13B-4bits版开源可部署实践:Docker镜像未封装但Shell脚本已实现开箱即用
  • Qwen3-ASR-1.7B效果展示:印度英语+澳式英语混合语音识别准确率报告
  • 智能宏系统:重新定义魔兽世界技能自动化逻辑
  • 闲置瑞祥商联卡别放过期!手把手教你安全变现不踩坑 - 团团收购物卡回收
  • 如何通过WarcraftHelper解决魔兽争霸3兼容性问题:现代硬件适配指南