Linux 中 find 命令使用详解

目录

  • 一:基本语法
  • 二:搜索路径
    • 1、限制递归层级
    • 2、排除指定路径
  • 三:匹配条件
    • 1、按照文件名搜索
    • 2、按文件类型搜索
    • 3、按文件大小搜索
    • 4、按文件权限搜索
    • 5、按文件所有者或所属组搜索
    • 6、按文件修改时间搜索
  • 四:执行操作
    • 1、输出满足条件的路径到屏幕
    • 2、对找到的文件执行操作

一:基本语法

find   [搜索路径]   [匹配条件]   [操作]
  • 搜索路径:指定搜索的起始路径,默认为当前目录,会以该目录为起点,递归查询所有目录;
  • 匹配条件:指定指定的条件来查找特定的文件
  • 操作:对查找到的符合条件的文件执行的操作,默认是打印输出到屏幕;

二:搜索路径

1、限制递归层级

  • -maxdepth n 指定在搜索路径中最多递归到第几层子目录。

  • -mindepth n 忽略低于指定深度的目录或文件。


例如:只搜索当前目录内容

-maxdepth 1 -mindepth  1

只搜索当前目录满足条件内容时,除了使用-maxdepth 1 ,还需要使用 -mindepth 1,否则的话如果当前目录的目录名满足条件,也会被匹配到

2、排除指定路径

  • -path:匹配要排除的路径,使用该选项指定的路径会默认输出到屏幕;
  • -prune:跳过指定的路径进行递归搜索
  • ():将多个条件组合成一个整体,类似于逻辑表达式中的分组,需要使用转义字符转义小括号。

例如:排除/sys 、/proc 和 /run目录不搜索

find /   \( -path /proc -o -path /sys -o -path /run  \) -prune -o -name "*.log" -print
# 排除指定路径\( -path /proc -o -path /sys -o -path /run  \) -prune # 如果匹配到的路径是/proc或/sys或/run,就通过 -prune选项来排除这些路径# 输出非指定路径的文件-o -name "*.log" -print # 如果匹配到的路径非上面指定的路径,就进行输出# print输出
find 默认会输出匹配条件的路径,如果"排除指定路径" 这个条件成立了,也会执行默认的print输出,所以加上 -print 后就只会输出"输出非指定路径的文件"这个条件的内容

三:匹配条件

使用find命令指定匹配条件时候,多个匹配条件默认就是 -a (AND) 操作,只有都满足条件的文件才会被匹配到。
也可以使用 -o(OR)来指定匹配条件,但是因为 -a的优先级高于 -o,所以如果需要改变优先级,就可以使用小括号将 某个条件做为一个整体。小括号需要使用转义字符进行转义。

1、按照文件名搜索

  • -name [文件名]:按文件名搜索(支持通配符 *?[]

  • -iname [文件名]:按文件名搜索(忽略大小写)。

说明:使用 -name 来匹配文件名的时候,要使用 单引号或者双引号将通配符括起来,以确保通配符正确解析。目的就是防止 Shell 提前扩展通配符

2、按文件类型搜索

  • -type [类型]:按文件类型搜索

3、按文件大小搜索

  • -size [大小]:按文件大小搜索。
+ 表示大于,- 表示小于,直接数值表示等于。c:字节数,k:KB,M:MB,G:GB。

4、按文件权限搜索

  • -perm [权限]:按权限搜索

5、按文件所有者或所属组搜索

  • -user [用户]:按所有者用户搜索

  • -group [组名]:按所属组搜索

6、按文件修改时间搜索

  • -mtime [天数]:按文件修改时间搜索。
-mtime +n:n 天前修改
-mtime -n:n 天内修改

四:执行操作

1、输出满足条件的路径到屏幕

  • -print:显示匹配的文件路径(默认操作)

2、对找到的文件执行操作

  • -exec [命令] {} \;:对找到的文件执行操作。

例如:删除180天以前的执行文件

find /resources/camera/record -name "*.mp4" -type f -mtime +180 -exec rm -f {} \;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/478689.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.net 8使用hangfire实现库存同步任务

C# 使用HangFire 第一章:.net Framework 4.6 WebAPI 使用Hangfire 第二章:net 8使用hangfire实现库存同步任务 文章目录 C# 使用HangFire前言项目源码一、项目架构二、项目服务介绍HangFire服务结构解析HangfireCollectionExtensions 类ModelHangfireSettingsHttpAuthInfoUs…

滑动窗口最大值(java)

题目描述 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums [1,3,-1,-3,5,3,6,7]…

springboot项目使用maven打包,第三方jar问题

springboot项目使用maven package打包为可执行jar后,第三方jar会被打包进去吗? 答案是肯定的。做了实验如下: 第三方jar的项目结构及jar包结构如下:(该第三方jar采用的是maven工程,打包为普通jar&#xf…

常用Rust日志处理工具教程

在本文中,我想讨论Rust中的日志。通过一些背景信息,我将带您了解两个日志库:env_logger和log4rs。最后,我将分享我的建议和github的片段。 Rust log介绍 log包是Rust中日志API的事实标准,共有五个日志级别&#xff1…

嵌入式的C/C++:深入理解 static、const 与 volatile 的用法与特点

目录 一、static 1、static 修饰局部变量 2、 static 修饰全局变量 3、static 修饰函数 4、static 修饰类成员 5、小结 二、const 1、const 修饰普通变量 2、const 修饰指针 3、const 修饰函数参数 4. const 修饰函数返回值 5. const 修饰类成员 6. const 与 #defi…

时间请求参数、响应

(7)时间请求参数 1.默认格式转换 控制器 RequestMapping("/commonDate") ResponseBody public String commonDate(Date date){System.out.println("默认格式时间参数 date > "date);return "{module : commonDate}"; }…

SpringBoot(9)-Dubbo+Zookeeper

目录 一、了解分布式系统 二、RPC 三、Dubbo 四、SpringBootDubboZookeeper 4.1 框架搭建 4.2 实现RPC 一、了解分布式系统 分布式系统:由一组通过网络进行通信,为了完成共同的任务而协调工作的计算机节点组成的系统 二、RPC RPC:远程…

单片机学习笔记 8. 矩阵键盘按键检测

更多单片机学习笔记:单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~单片机学习笔记 5. 数码管静态显示单片机学习笔记 6. 数码管动态显示单片机学习笔记 7. 独立键盘 目录 0、实现的…

道品智能科技移动式水肥一体机:农业灌溉施肥的革新之选

在现代农业的发展进程中,科技的力量正日益凸显。其中,移动式水肥一体机以其独特的可移动性、智能化以及实现水肥一体化的卓越性能,成为了农业领域的一颗璀璨新星。它不仅改变了传统的农业灌溉施肥方式,更为农业生产带来了高效、精…

android 音效可视化--Visualizer

Visualizer 是使应用程序能够检索当前播放音频的一部分以进行可视化。它不是录音接口,仅返回部分低质量的音频内容。但是,为了保护某些音频数据的隐私,使用 Visualizer 需要 android.permission.RECORD_AUDIO权限。传递给构造函数的音频会话 …

计算机网络八股整理(一)

计算机网络八股文整理 一:网络模型 1:网络osi模型和tcp/ip模型分别介绍一下 osi模型是国际标准的网络模型,它由七层组成,从上到下分别是:应用层,表示层,会话层,传输层,…

利用Python爬虫获得1688按关键字搜索商品:技术解析

在电商领域,1688作为中国领先的B2B电商平台,其商品搜索功能对于商家来说具有极高的价值。通过获取搜索结果,商家可以更好地了解市场趋势,优化产品标题,提高搜索排名。本文将介绍如何使用Python编写爬虫,以获…

Spring Boot集成MyBatis-Plus:自定义拦截器实现动态表名切换

Spring Boot集成MyBatis-Plus:自定义拦截器实现动态表名切换 一、引言 介绍动态表名的场景需求,比如多租户系统、分表分库,或者不同业务模块共用一套代码但操作不同表。说明 MyBatis-Plus 默认绑定固定表名的问题。 二、项目配置 1. 集成 M…

(原创)Android Studio新老界面UI切换及老版本下载地址

前言 这两天下载了一个新版的Android Studio,发现整个界面都发生了很大改动: 新的界面的一些设置可参考一些博客: Android Studio新版UI常用设置 但是对于一些急着开发的小伙伴来说,没有时间去适应,那么怎么办呢&am…

数据新时代:如何选择现代数据治理平台(上)

谈现代数据治理系统的十大架构特征 最近一位老友找到我,咨询他的数据治理平台到底该不该换,背景是这样的:若干年前采购了一个市场主流的数据治理平台,功能大概就是数据治理三件套——标准、元数据和质量等经典数据治理的功能。现…

抖音SEO矩阵系统:开发技术分享

市场环境剖析 短视频SEO矩阵系统是一种策略,旨在通过不同平台上的多个账号建立联系,整合同一品牌下的各平台粉丝流量。该系统通过遵循每个平台的规则和内容要求,输出企业和品牌形象,以矩阵形式增强粉丝基础并提升商业价值。抖音作…

从零开始打造个人博客:我的网页设计之旅

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 ✨特色专栏&#xff1a…

STM32F103C8T6实时时钟RTC

目录 前言 一、RTC基本硬件结构 二、Unix时间戳 2.1 unix时间戳定义 2.2 时间戳与日历日期时间的转换 2.3 指针函数使用注意事项 ​三、RTC和BKP硬件结构 四、驱动代码解析 前言 STM32F103C8T6外部低速时钟LSE(一般为32.768KHz)用的引脚是PC14和PC…

Jmeter中的定时器

4)定时器 1--固定定时器 功能特点 固定延迟:在每个请求之间添加固定的延迟时间。精确控制:可以精确控制请求的发送频率。简单易用:配置简单,易于理解和使用。 配置步骤 添加固定定时器 右键点击需要添加定时器的请求…

Fakelocation Server服务器/专业版 ubuntu

前言:需要Ubuntu系统 Fakelocation开源文件系统需求 Ubuntu | Fakelocation | 任务一 任务一 更新Ubuntu(安装下载不再赘述) sudo -i # 提权 sudo apt update # 更新软件包列表 sudo apt upgrade # 升级已安装的软…