linux命令-find指令

news2025/4/12 7:18:51

1.文件名和路径
参数 说明 示例
-name pattern 按文件名匹配(区分大小写)
-iname pattern 按文件名匹配(忽略大小写)
-path pattern 按路径匹配
-ipath pattern 按路径匹配(忽略大小写)

find . -name "file.txt"
find . -iname "file.txt"
find /home -path "*/documents/*"
find /home -ipath "*/documents/*"

2.文件类型
-type f 查找文件
-type d 查找目录
-type l 查找符号链接

find . -type f
find . -type d
find . -type l

3.权限和所有权
-user username 按文件所有者过滤
-group groupname 按文件所属组过滤
-perm mode 按文件权限过滤
-nouser 查找没有有效所有者的文件
-nogroup 查找没有有效所属组的文件

find . -user "john"
find . -group "staff"
find . -perm 755
find . -nouser
find . -nogroup

4.文件大小
-size +n 查找大于 n 字节的文件
-size -n 查找小于 n 字节的文件
-size n 查找等于 n 字节的文件
-size +nk 查找大于 n KB 的文件
-size -nk 查找小于 n KB 的文件
-size nk 查找等于 n KB 的文件
-size +nm 查找大于 n MB 的文件
-size -nm 查找小于 n MB 的文件
-size nm 查找等于 n MB 的文件

find . -type f -size +1000000
find . -type f -size -1000000
find . -type f -size 1000000
find . -type f -size +100k
find . -type f -size -100k
find . -type f -size 100k
find . -type f -size +100m
find . -type f -size -100m
find . -type f -size 100m

5.执行操作
-exec command {} ; 对找到的文件执行命令
-exec command {} + 对找到的文件执行命令(更高效)
-delete 删除找到的文件
-print 打印找到的文件路径(默认行为)
-ls 以 ls -dils 格式列出找到的文件
-ok command {} ; 对找到的文件执行命令,需用户确认

find . -type f -name "*.log" -exec rm -f {} \;
find . -type f -name "*.log" -exec rm -f {} +
find . -type f -name "*.tmp" -delete
find . -type f -print
find . -type f -ls
find . -type f -name "*.log" -ok rm -f {} \;

6.表达式和逻辑
-and 逻辑与
-or 逻辑或
-not 逻辑非
-a 逻辑与(同 -and)
-o 逻辑或(同 -or)
! 逻辑非(同 -not)

find . -type f -name "*.txt" -and -mtime +7
find . -type f -name "*.txt" -or -name "*.log"
find . -type f -not -name "*.txt"
find . -type f -name "*.txt" -a -mtime +7
find . -type f -name "*.txt" -o -name "*.log"
find . -type f ! -name "*.txt"

7.时间过滤参数:
以下是常用的 find 时间过滤参数及其说明:
1.-mtime
根据文件内容修改时间进行过滤。
-mtime n:查找在 n 天内修改过的文件。
-mtime +n:查找在 n 天以前修改过的文件。
-mtime -n:查找在 n 天内修改过的文件。

# 查找 7 天内修改过的文件
find . -type f -mtime -7

# 查找 7 天以前修改过的文件
find . -type f -mtime +7

# 查找正好 7 天前修改过的文件
find . -type f -mtime 7

2.-atime
根据文件最后访问时间进行过滤。
-atime n:查找在 n 天内访问过的文件。
-atime +n:查找在 n 天以前访问过的文件。
-atime -n:查找在 n 天内访问过的文件。

# 查找 7 天内访问过的文件
find . -type f -atime -7

# 查找 7 天以前访问过的文件
find . -type f -atime +7

# 查找正好 7 天前访问过的文件
find . -type f -atime 7

3.-ctime
根据文件状态改变时间进行过滤。
-ctime n:查找在 n 天内状态改变过的文件。
-ctime +n:查找在 n 天以前状态改变过的文件。
-ctime -n:查找在 n 天内状态改变过的文件。

# 查找 7 天内状态变更过的文件
find . -type f -ctime -7

# 查找 7 天以前状态变更过的文件
find . -type f -ctime +7

# 查找正好 7 天前状态变更过的文件
find . -type f -ctime 7

4.-mmin
根据文件内容修改时间(以分钟为单位)进行过滤。
-mmin n:查找在 n 分钟内修改过的文件。
-mmin +n:查找在 n 分钟以前修改过的文件。
-mmin -n:查找在 n 分钟内修改过的文件。

# 查找 30 分钟内修改过的文件
find . -type f -mmin -30

# 查找 30 分钟以前修改过的文件
find . -type f -mmin +30

# 查找正好 30 分钟前修改过的文件
find . -type f -mmin 30

5.-amin
根据文件最后访问时间(以分钟为单位)进行过滤。
-amin n:查找在 n 分钟内访问过的文件。
-amin +n:查找在 n 分钟以前访问过的文件。
-amin -n:查找在 n 分钟内访问过的文件。

# 查找 30 分钟内访问过的文件
find . -type f -amin -30

# 查找 30 分钟以前访问过的文件
find . -type f -amin +30

# 查找正好 30 分钟前访问过的文件
find . -type f -amin 30

6.-cmin
根据文件状态改变时间(以分钟为单位)进行过滤。
-cmin n:查找在 n 分钟内状态改变过的文件。
-cmin +n:查找在 n 分钟以前状态改变过的文件。
-cmin -n:查找在 n 分钟内状态改变过的文件。

# 查找 30 分钟内状态变更过的文件
find . -type f -cmin -30

# 查找 30 分钟以前状态变更过的文件
find . -type f -cmin +30

# 查找正好 30 分钟前状态变更过的文件
find . -type f -cmin 30
# 查找 7 天内修改过的 `.log` 文件并删除
find . -type f -name "*.log" -mtime -7 -exec rm -f {} \;

# 查找 30 分钟内访问过的文件并打印
find . -type f -amin -30 -exec ls -l {} \;

7.按具体时间过滤
-newermt “time” 查找在指定时间戳之后修改的文件。
-newerct “time” 查找在指定时间戳之后状态变更的文件。
-newerat “time” 查找在指定时间戳之后访问的文件。

find . -type f -newermt '2024-01-01 12:00'(查找2024年1月1日12:00之后修改的文件)
find . -type f -newerct '2024-01-01 12:00'(查找2024年1月1日12:00之后状态变更的文件)
find . -type f -newerat '2024-01-01 12:00'(查找2024年1月1日12:00之后访问的文件)

8.按文件比较时间
-newer file 查找比指定文件新(修改时间更近)的文件。
-older file 查找比指定文件旧(修改时间更早)的文件。

find . -type f -newer reference.txt(查找比reference.txt新修改的文件)
find . -type f -older reference.txt(查找比reference.txt旧修改的文件)

9.按时间范围过滤
-newermt “time1” ! -newermt “time2” 查找在两个时间戳之间修改的文件。

find . -type f -newermt '2024-01-01 00:00' ! -newermt '2024-01-01 23:59'(查找2024年1月1日当天修改的文件)

处理错误提示
如果出现类似 find: I cannot figure out how to interpret ‘2024-01-01’ as a date or time 的错误提示,可以尝试以下方法:
检查系统版本:确保使用的 find 命令版本支持 -newermt 参数。
使用脚本包装:将命令放入脚本中执行,以避免直接在命令行中出现解析问题。

10.其他
-depth 深度优先搜索(先搜索子目录)
-maxdepth n 设置最大搜索深度
-mindepth n 设置最小搜索深度
-empty 查找空文件或空目录
-inum n 按 inode 编号查找
-printf format 自定义输出格式
-quit 查找到第一个匹配文件后退出

find . -depthfind . -maxdepth 2
find . -mindepth 1
find . -type f -empty
find . -inum 12345
find . -type f -printf "%p %s\n"
find . -type f -name "file.txt" -print -quit

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【每日一个知识点】分布式数据湖与实时计算

在现代数据架构中,分布式数据湖(Distributed Data Lake) 结合 实时计算(Real-time Computing) 已成为大数据处理的核心模式。数据湖用于存储海量的结构化和非结构化数据,而实时计算则确保数据能够被迅速处理…

c语言数据结构--------拓扑排序和逆拓扑排序(Kahn算法和DFS算法实现)

#include <stdio.h> #include <string.h> #include <stdbool.h> #include <stdlib.h>//使用卡恩算法(Kahn)和深度优先算法(DFS)实现//拓扑排序和逆拓扑排序//拓扑排序和逆拓扑排序顶点顺序相反//图&#xff0c;邻接矩阵存储 #define MaxVertexNum 100 …

谷粒微服务高级篇学习笔记整理---nginx搭建正反向代理

正向与反向代理 **正向代理:**客户端向代理服务器发请求并指定目标服务器,代理向目标转交请求并将获得的内容转给客户端。 反向代理:用户直接访问反向代理服务器就可以获得目标服务器的资源。反向代理服务器统一了访问入口。 给首页配置反向代理 修改windows的hosts文件配…

2.pycharm保姆级安装教程

一、pycharm安装 1.官网上下载好好软&#xff0c;双击打开 2.下一步 3.修改路径地址 (默认也可以) 4.打勾 5.安装 不用重启电脑 二、添加解释器 1.双击软件&#xff0c;打开 2.projects – new project 3.指定项目名字&#xff0c;项目保存地址&#xff0c;解释器 4.右击 – …

【SQL】取消sql某一列的唯一值key值的方法

在插入数据到sql时&#xff0c;遇到了这个问题&#xff1a; Duplicate entry ‘XXX’ for key 起因是&#xff1a; 我之前设计表的时候&#xff0c;手动给product_title 这个列加了一个key&#xff0c; key 是这个字段的唯一键约束&#xff0c;就不能重复在这一列存入重复的数…

数据库--SQL

SQL&#xff1a;Structured Query Language&#xff0c;结构化查询语言 SQL是用于管理关系型数据库并对其中的数据进行一系列操作&#xff08;包括数据插入、查询、修改删除&#xff09;的一种语言 分类&#xff1a;数据定义语言DDL、数据操纵语言DML、数据控制语言DCL、事务处…

SQL语句(一)—— DDL

目录 一、SQL 基础知识 &#xff08;一&#xff09;SQL 通用语法 &#xff08;二&#xff09;SQL 分类 二、DDL —— 数据库操作 1、查询所有数据库 2、查询当前数据库 3、创建数据库 4、删除数据库 5、切换数据库 三、DDL —— 表操作 &#xff08;一&#xff09;查…

Husky目标跟踪

1.0设备清单 幻影峡谷、适配器 摄像头及数据线、显卡欺骗器 外接屏幕、键盘鼠标 Husky底盘、便携显示屏、键盘鼠标 移动电源 1.1连线 插排——移动电源幻影峡谷——适配器——插排摄像头——幻影峡谷&#xff08;摄像头固定在机械臂前方的底盘上&#xff09;键盘鼠标显示器…

Python----机器学习(线性回归:自求导的方法实现)

一、线性回归方程 目标&#xff1a; 线性回归的目标是找到最佳的系数来使模型与观察到的数据尽可能拟合。 应用&#xff1a; 预测&#xff1a;给定自变量的值&#xff0c;预测因变量的值。 回归分析&#xff1a;确定自变量对因变量的影响程度 线性回归是统计学和机器学习中最简…

Springcache+xxljob实现定时刷新缓存

目录 SpringCache详解 SpringCache概述 核心原理 接口抽象与多态 AOP动态代理 核心注解以及使用 公共属性 cacheNames KeyGenerator&#xff1a;key生成器 key condition&#xff1a;缓存的条件&#xff0c;对入参进行判断 注解 xxl-job详解 SpringcacheRedis实现…

vue2拖拉拽做个模拟公式工具

1. 成图 2. 介绍 就是简单拖拉拽来做个规则运算器&#xff0c;具体运算规则、校验规则自己加。 3. 代码 HTML代码 <template><div class"red-cont"><div class"red-top"><divclass"red-top-left"><div class&quo…

Windows查重工具,强烈推荐大家收藏!

我大家在用电脑的时候&#xff0c;是不是发现用得越久&#xff0c;电脑里的软件和文件就越多&#xff1f; 今天我给大家带来的这两款重复文件查找神器&#xff0c;简直就是电脑里的“清洁小能手”&#xff0c;能帮你把那些重复的文件和文件夹找出来。 Easy DupLicate Finder 重…

使用python完成手写数字识别

入门图像识别的第一个案例,看到好多小伙伴分享,也把自己当初的思路捋捋,写成一篇博客,作为记录和分享,也欢迎各位交流讨论。 实现思路 数据集:MNIST(包含60,000个训练样本和10,000个测试样本) 深度学习框架:Keras(基于TensorFlow) 模型架构:卷积神经网络(CNN) 实…

OpenLayers:如何控制Overlay的层级?

我最近在使用Overlay的时候遇到了一个问题&#xff0c;我向地图中添加了两种不同的Overlay&#xff08;下图中的蓝色标牌和粉色标牌&#xff09;&#xff0c;我希望粉色标牌可以显示在最上层&#xff0c;可偏偏蓝色标牌却将其遮挡住了。于是我对Overlay的层级开始起了兴趣&…

《Golang高性能网络编程:构建低延迟服务器应用》

在本文中&#xff0c;我们将深入探讨Golang高性能网络编程&#xff0c;帮助您构建低延迟服务器应用。我们将介绍Golang的网络编程特性、优化技巧和实际案例&#xff0c;让您更好地理解和应用Golang在网络编程领域的优势。 高性能网络编程简介 什么是Golang高性能网络编程 高性能…

数据结构C语言练习(设计循环队列)

一、循环队列简介 循环队列是一种线性数据结构&#xff0c;基于 FIFO&#xff08;先进先出&#xff09;原则&#xff0c;将队尾连接到队首形成循环。其核心优势是能复用队列之前用过的空间&#xff0c;避免普通队列 “假溢出” 问题。实现时&#xff0c;通常申请 k1 大小的数组…

vscode代码片段的设置与使用

在 Visual Studio Code (VS Code) 中&#xff0c;可以通过自定义**代码片段&#xff08;Snippets&#xff09;**快速插入常用代码模板。以下是详细设置步骤&#xff1a; 步骤 1&#xff1a;打开代码片段设置 按下快捷键 Ctrl Shift P&#xff08;Windows/Linux&#xff09;或…

uniapp -- 列表垂直方向拖拽drag组件

背景 需要在小程序中实现拖拽排序功能,所以就用到了m-drag拖拽组件,在开发的过程中,发现该组件在特殊的场景下会有些问题,并对其进行了拓展。 效果 组件代码 <template><!-- 创建一个垂直滚动视图,类名为m-drag --><scroll

一款非常小的软件,操作起来非常丝滑!

今天我想给大家分享一款超级实用的小软件&#xff0c;它是一款电脑上用的倒计时和关机助手。 关机助手 帮你自动关机 这款关机助手特别小巧&#xff0c;完全不需要安装&#xff0c;文件大小才60KB&#xff0c;比一个小小的文件还小。你只需要把它下载下来&#xff0c;双击打开…

FrameWork基础案例解析(四)

文章目录 单独拉取framework开机与开机动画横屏Android.mk语法单独编译SDKmake 忽略warning单独修改和编译Camera2单独编译Launcher3Android Studio 导入、修改、编译Settings导入 Android Studio 导入、修改、编译Launcher3android 开机默认进入指定Launcher植入自己的apk到系…