Linux使用find命令查找文件
find命令
- 简介
- 语法格式
- 基本参数
- 参考实例
- 根目录下文件名称的例子
- 指定路径下特定类型的例子
- 指定路径、文件类型特定文件名称的例子
- 指定路径、文件类型特定文件大小的例子
- 指定路径、文件类型 查找近期修改时间的例子
- 指定路径、文件类型 查找空文件或目录的例子
- 指定路径、文件类型 查找特定权限文件的例子
- 搜索指定用户的文件
- 搜索指定组的目录
- 组合多个选项
简介
https://zhuanlan.zhihu.com/p/550924132
Linux系统中的find命令是一种功能丰富的工具,可以帮助我们快速查找文件或目录。本教程将向您展示如何使用Linux find命令来查找您需要的文件。
在使用Linux find命令之前,您需要了解其基本语法。Linux find命令的基本语法如下:
find [path] [expression]
其中,
path表示要查找的目录路径,expression表示查找表达式,用于指定要查找的文件类型、名称、大小等条件。
find命令的作用是在目录层次结构中搜索文件所在的位置,此命令可以使用的参数很多,同时支持正则表达式,结合管道符后能够实现更加复杂的功能,是必须掌握的命令之一。
通常find是从根目录开始全盘搜索,不同于其他几个搜索文件的命令,find搜索时会消耗较多的系统资源,在服务器负载较高的时候,不建议从根目录开始搜索。
语法格式
语法格式:find 【路径】【参数】
SYNOPSIS
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path…] [expression]
基本参数
此命令的常用参数有以下这些,以表格形式显示:
| -name | 匹配文件的名称 |
|---|---|
| -user | 匹配用户的文件(所有者) |
| -group | 匹配组的文件(所有组) |
| -mtime -n +n | 匹配修改内容的时间,-n表示n天之内,+n表示n天之前 |
| -atime -n +n | 匹配访问文件的时间,-n表示n天之内,+n表示n天之前 |
| -ctime -n +n | 匹配改动文件的时间,-n表示n天之内,+n表示n天之前 |
| -perm | 匹配文件权限 |
| -size | 匹配文件的大小,单位k M,+nk表示查找大于n的文件,-nk表示查找小于n的文件 |
| -exec { } ; | 后面可跟用于进一步处理搜索结果的命令 |
| -prune | 忽略某个目录 |
| -nouser | 匹配不是这个用户的文件 |
| -nogroup | 匹配不是这个组的文件 |
| -type | 匹配文件类型(b d c p f l) |
其中,-type参数的文件类型:
b:块设备文件
d:目录文件
c:字符设备文件
p:管道文件
f :文本文件
l :链接文件
参考实例
根目录下文件名称的例子
find / -name "000"
上述命令将在服务器的根目录中查找包含"000"的文件或目录。
在root/data目录下搜索*.txt的文件名
[root@localhost ~]# find /root/data -name "*.txt"
/root/data/1.txt
/root/data/2.txt
/root/data/3.txt
/root/data/4.txt
/root/data/5.txt
在/var/log目录搜索指定后缀的文件 , -iname表示不区分大小写的的文件名称
[root@localhost ~]# find /var/log -type f -iname "*.log"
/var/log/tuned/tuned.log
/var/log/audit/audit.log
/var/log/anaconda/anaconda.log
/var/log/anaconda/X.log
/var/log/anaconda/program.log
/var/log/anaconda/packaging.log
/var/log/anaconda/storage.log
......
在/var/log目录搜索指定后缀不是.log的文件
[root@localhost ~]# find /var/log -type f ! -name ".log" | wc -l
71
指定路径下特定类型的例子
除了查找特定关键词的文件或目录外,您还可以使用Linux find命令的其他选项来进一步细化您的搜索。
要查找特定类型的文件,您可以使用-type选项。
find /path/to/search -type f -name "*.txt"
在上述命令中,
/path/to/search是您要查找的目录路径,-type f表示要查找的是文件类型,-name "*.txt"表示要查找以.txt结尾的文件。
指定路径、文件类型特定文件名称的例子
find /path/to/search -type f -name "file.txt"
指定路径、文件类型特定文件大小的例子
要查找特定大小的文件,可以使用
-size选项。例如,要查找大小为10MB的文件,可以使用以下命令:
find /path/to/search -type f -size 10M
在/etc目录下搜索大于5M,小于10M的文件
[root@localhost ~]# find /etc -type f -size +5M -and -size -10M
指定路径、文件类型 查找近期修改时间的例子
如果您想查找近期修改的文件,可以使用
-mtime选项。例如,要查找近期7天内修改过的文件,可以使用以下命令:
find /path/to/search -type f -mtime -7
搜索一天以内最后修改时间的文件;并将文件删除
使用-exec参数将前面的文件进行处理,也可使用find配合xargs将文件进行删除。
[root@localhost ~]# find /root/data -mtime -1
/root/data
/root/data/1.txt
/root/data/2.txt
/root/data/3.txt
/root/data/4.txt
/root/data/5.txt
[root@localhost ~]# find /root/data -mtime -1 -exec rm -f {} \; [root@localhost ~]# find /root/data -mtime -1 |xargs -i rm -f {}[root@localhost ~]# ll /root/data/
总用量 0
指定路径、文件类型 查找空文件或目录的例子
要查找空文件或目录,可以使用
-empty选项。例如,要查找空目录,可以使用以下命令:
find /path/to/search -type d -empty
指定路径、文件类型 查找特定权限文件的例子
要查找特定权限的文件,可以使用
-perm选项。例如,要查找所有小伙伴可读、可写和可执行的文件,可以使用以下命令:
find /path/to/search -type f -perm 777
搜索指定用户的文件
[root@localhost ~]# find / -type f -user host
搜索指定组的目录
[root@localhost ~]# find / -type d -group host
/var/tmp/yum-host-u08wM2
/var/tmp/yum-host-u08wM2/x86_64
/var/tmp/yum-host-u08wM2/x86_64/7
[root@localhost ~]# find / -type d -group host | wc -l
18
组合多个选项
您还可以将多个选项组合在一起来查找更精确的结果。例如,要查找所有的图片文件(.jpg或.png)和大小不超过1MB的文件,可以使用以下命令:
find /path/to/search -type f \( -name "*.jpg" -o -name "*.png" \) -size -1M
通过组合不同的选项,您可以根据自己的需求来定制查找条件,从而更加准确地找到所需的文件。
相关文章:
Linux使用find命令查找文件
find命令 简介语法格式基本参数 参考实例根目录下文件名称的例子指定路径下特定类型的例子指定路径、文件类型特定文件名称的例子指定路径、文件类型特定文件大小的例子指定路径、文件类型 查找近期修改时间的例子指定路径、文件类型 查找空文件或目录的例子指定路径、文件类型…...
安卓使用android studio跨进程通信之AIDL
我写这篇文章不想从最基础的介绍开始,我直接上步骤吧. 1.创建服务端 1.1:创建服务端项目:我的as版本比较高,页面就是这样的 1.2:创建AIDL文件,右键项目,选中aidl aidl名字可以自定义也可以默认 basicTypes是自带的,可以删掉,也可以不删,然后把你自己所需的接口写上去 1.3:创建…...
RabbitMQ基础篇 笔记
RabbitMQ 余额支付 同步调用 一步一步的来,支付业务写完后,如果之后加需求,还需要增加代码,不符合开闭原则。 性能上也有问题,openfeign是同步调用,性能太差。 同步调用耦合太多。 同步的优势是可以立…...
实践小记—静态成员的使用注意(或许由此产生的不知名Bug)
序言 在实际生产过程中,为了便于调用,static修饰的成员会比较容易出现。 如果后期该变量并不会被修改,可以考虑使用。但如果后期需要被修改,使用该变量修饰符则需要慎重考虑。 尤其是在对硬件控制的实际生产中,更需…...
华为OD 身高体重排序(100分)【java】A卷+B卷
华为OD统一考试A卷B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入ÿ…...
在Word中,图片显示不全
在今天交作业的时候,发现了一个非常SB的事情,把图片复制过去显示不完全: 使用文心一言查看搜索了一下,发现可能是以下几种原因: 图片所在行的行高设置不正确。可以重新设置行高,具体步骤包括打开图片显示…...
C++数据结构X篇_20_选择排序
文章目录 1. 选择排序原理2. 选择排序原理核心代码3. 选择排序时间消耗 1. 选择排序原理 选择排序:相对于冒泡排序,减少了交换次数,下图展示了选择排序的原理,具体仍需要结合代码分析。 2. 选择排序原理核心代码 //选择排序 v…...
华为OD技术面试-最短距离矩阵(动态规划、广度优先)
背景 记录2023-10-21 晚华为OD三面的手撕代码题,当时没做出来,给面试官说了我的想法,评价:解法复杂了,只是简单的动态规范 或 广度优先算法,事后找资料记录实现方式。 题目 腐烂的橘子 问题描述ÿ…...
【代码规范】switch 块级的作用域问题
代码规范的一些事儿 问题 今日 Git 提交代码时,出现报错: error Unexpected lexical declaration in case block no-case-declarations 解决过程 我马上就去百度,就找到了这篇文章:解决 Unexpected lexical declaration in ca…...
PHP 基础/练习
练习 成绩定级 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>成绩定级脚本</title> </…...
TCP协议与UDP协议
UDP协议 UDP协议端的格式 16位UDP长度,表示整个数据报(UDP首部UDP数据)的最大长度;如果校验和出错,就会直接丢弃; UDP的特点 UDP传输过程类似寄信 无连接 知道对端的IP和端口号就直接进行传输,不需要建立连接; 不可靠 没有任何安全机制,…...
极智嘉(Geek+)柔性货箱到人拣选方案,助力Starlinks实现高效运营
近些年,电商业务席卷全球,一众企业蓬勃发展。比如沙特阿拉伯先进的物流与供应链解决方案供应商Starlinks的电子商务的销售额从6%增长到了23%。为满足日益增长的国际电商业务需求,以及订单交付时效性更高的要求,Starlinks与全球仓储…...
Hadoop3教程(三十一):(生产调优篇)异构存储
文章目录 (157)异构存储概述概述异构存储的shell操作 (158)异构存储案例实操参考文献 (157)异构存储概述 概述 异构存储,也叫做冷热数据分离。其中,经常使用的数据被叫做是热数据&…...
网络协议--UDP:用户数据报协议
11.1 引言 UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。这与面向流字符的协议不同,如TCP,应用程序产生的全体数据与真正发送的单个IP数据报可能没有什么联…...
vscode摸鱼插件开发
不知道大家在写代码的时候,摸不摸鱼,是不是时不时得打开一下微博,看看今天发生了什么大事,又有谁塌房,而你没有及时赶上。 为此,我决定开发一个vscode插件,来查看微博热搜 插件名称࿱…...
音频录制和处理软件 Audio Hijack mac中文版说明
Audio Hijack mac是一款功能强大的音频录制和处理软件,它可以帮助用户从各种来源捕获和处理音频。 首先,Audio Hijack具有灵活的音频捕获功能。它支持从多个来源录制音频,包括麦克风、应用程序、网络流媒体、硬件设备等等。你可以选择捕获整个…...
寻找二叉树一个节点的后继节点
后继节点:中序遍历的后一个节点 普通二叉树:中序遍历得到一个list,时间复杂度O(n) 本题的二叉树:有父节点的指针,后继节点与原节点的距离为1,因此可以直接通过父节点找到下一个节点 优化:节点…...
如何能够获取到本行业的能力架构图去了解自己的能力缺陷与短板,从而能清晰的去弥补差距?
如何能够获取到本行业的能力架构图去了解自己的能力缺陷与短板,从而能清晰的去弥补差距? 获取并利用能力架构图(Competency Model)来了解自己在特定行业或职位中的能力缺陷和短板,并据此弥补差距,是一个非常…...
红队打靶:Misdirection打靶思路详解(vulnhub)
目录 写在开头 第一步:主机发现与端口扫描 第二步:Web渗透(80端口,战术放弃) 第三步:Web渗透(8080端口) 第四步:sudo bash提权 第五步:/etc/passwd利…...
10.23归并排序
课上 归并排序 最大时,就是两个都是完全倒序,但注意一定有一个序列先用完,此时剩一个序列只有一个元素,不用比较,直接加入,所以就是nn-1, 最小时,是都是完全有序,且一个序列中的元…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
