find 命令必知必会,附常用精彩案例分享,收藏备用

find, 顾名思义“查找”的作用,作为 IT 民工,对于基本的 Linux 命令还是要有所掌握的,今天刚好用到了 find , 顺手整理一下个人常用的操作,以备忘,更全面的资料或案例大家可以自行搜索或者查阅 man find.

或者通过下面的网页和PDF查阅。

https://www.gnu.org/software/findutils/manual/html_mono/find.html

https://www.gnu.org/software/findutils/manual/find.pdf

更多 GNU 命令也可以从这个网站直接查询哟!

https://www.gnu.org/manual/manual.html

如果英语水平不好的话,首先我建议你尝试自己读读,读不明白的,可以把链接扔给 AI 助手,翻译一下就好。比如:我问 kimi 翻译 Shell-Pattern-Matching 比请个老外还专业!

find 命令有非常大的灵活性,可以指定丰富的搜索条件(如文件权限、属主、属组、文件类型、日期和大小等)来定位系统中的文件和目录。

find 命令一般使用格式:

find [path...] [expression] [action]
find ./ -name xx
find ./ -name '*.log'

常用过滤参数

  • -name 按文件名查找文件,区分大小写

  • -iname 同上,不区分大小写

  • -path 匹配路径,区分大小写

  • -ipath 同上,不区分大小写

  • -perm 按文件权限来查找文件

  • -user 按文件属主来查找文件

  • -group 按文件属组来查找文件

  • -mtime [+n|-n] 指定时间范围(默认单位天)修改时间,m表示 modify
    • +n 表示文件更改时间距现在n天以前

    • -n 表示文件更改时间距现在n天以内

  • -atime/-ctime 同上,a 表示 access , c 表示 create

  • -mmin/-cmin/-amin 分钟级范围过滤

  • -nogroup 查找无有效所属组的文件

  • -nouser 查找无有效属主的文件

  • -newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。

  • -type 查找某一类型的文件
    • d - 目录

    • l - 符号链接文件

    • f - 普通文件

  • -size n 根据文件尺寸进行检索,支持 + -
    • c 字节

    • k KB

    • M MB

    • G GB

  • -empty 检索空文件或空目录

  • -maxdepth n 限制遍历的层级

常用操作

主要用于操作,显示,删除等

  • -delete 执行删除

  • -exec 执行自定义命令

  • -ls 显示文件信息

  • -ok 询问是否执行某个命令

检索案例赏析

# 查找 /usr 目录下所有文件名以 .txt 结尾的文件
find /usr -name '*.txt' # 查找 /usr 目录下所有文件名刚好为 4 个字符的文件
find /usr -name '????' # 查找 /usr 下所有文件名以 .txt 结尾的文件,且该文件的父目录必须是 src
find /usr -path '*/src/*.txt'# 查找 /usr 下所有文件名以 python 开头的目录
find /usr -type d -name 'python*'# 查找 ~ 家目录所有空目录
find ~ -type d -empty# 检索 /usr 下所有文件名不以 .txt 为后缀的文件
find /usr -type f ! -name '*.txt'# 检索 /usr 下所有内容不为空的文件
find /usr -type f ! -empty# 检索根目录下所有属主为 panda 的文件
find / -type f -user panda# 检索 /usr 下2天前被修改过的文件
find /usr -type f -mtime 2# 检索文件大小大于 1 GB 的文件
find . -size +1G# 检索 /usr 目录下权限为 rwxr-xr-x 的文件
find /usr -perm u=rwx,g=rx,o=rx# 检索 /usr 目录下权限为 r-xr-xr-x 的文件
find /usr -perm a=rx# 检索 /usr 目录下所有用户具有执行权限的文件,只关系执行权限,使用 / 表示部分匹配
find /usr -type f -perm /a=x# 使用数字形式 rw-r--r- 等同于 644
find /usr -perm 644# 限制遍历的层级,最大 3 级
find / -name '*.log' -maxdepth 3# 逻辑组合 -a 表示 and , -o 表示 or
find /usr -type d -name 'python*'
# 等价于
find /usr -type d -a -name 'python*'# 匹配所有文件,但是排除 ./tmp下的文件
# 这个要配合 -o -print 才行
find . -path './tmp*' -prune -o -print# 查找目录并排序
find . -type d | sort# 匹配 5分钟以内 或者 50 天前 的文件
find . '(' -mmin -5 -o -mtime +50 ')' -a -type f

操作案例赏析

# 清理用户目录下的所有空目录
find ~ -type d -empty -delete# 将用户目录下的 mp3 文件拷贝到 /media/MyDrive, 注意后面的 ';' 不能省略
find ~ -type f -name '*.mp3' -exec cp {} /media/MyDrive ';'
# ';' 也可以替换为 \;
find ~ -type f -name '*.mp3' -exec cp {} /media/MyDrive \;
# 每当 find 命令检索到一个符合条件的文件
# 会使用其完整路径取代命令中的 {}
# 然后执行 -exec 后面的命令一次# 在所有文件中检索文件内容有hello的文件
# 查找文件内容很有用
find ~ -type f -exec grep -l hello {} ';'# 上面也说了,默认每检索到 1 个匹配的文件就会去执行一次 exec 后面的命令
# 如果有多个 mp3 文件,最终压缩包里只有一个 mp3 文件
# 所以配合 + 号,可以将匹配完的列表作为 {} 中的参数
find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} +# 查找大于 1G 的文件,并 ls 展示出来
find . -type f -size +1G -ls# 同上,展现形式不一样,默认的 -ls 展现的更丰富
find . -type f -size +1G -exec ls -l {} \;# 删除 5 天前的文件
find . -type f -mtime +5 -exec rm {} \;# 要求用户确认是否删除,需要输入 y 才会执行
find . -empty -type f -ok rm {} \;
< rm ... ./b > ? y
< rm ... ./a > ? n

示例太多了,我也不罗列了,基本够用了,目前大模型时代,有什么问题都可以问 AI 了。

比如:让 kimi 给我列举 100 个 find 案例,可以快速参考。

好了,本文就先分享到这里吧,可以关注,收藏备用哟!

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

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

相关文章

如何将本地代码上传到github

将本地文件上传到GitHub仓库的过程通常包括以下几个步骤&#xff1a; 一 创建GitHub仓库&#xff1a; 如果你还没有一个GitHub仓库&#xff0c;首先需要在GitHub上创建一个新的仓库。登录到你的GitHub账户&#xff0c;然后点击“New repository”按钮&#xff0c;填写仓库的相关…

流动的智慧:开创集成资产管理新局面 ——华为云ROMA Connect资产中心

ROMA Connect资产中心&#xff1a;开放生态下的轻量化集成资产管理 企业不断扩大数字化建设&#xff0c;使得相应的资产在数量和形态以及复杂度上呈指数型提升。如此丰富的高价值数据资源如何规范化管理、整合利用&#xff1f;这是很多企业反馈遇到的难题。 ROMA Connect资产…

MySQL---JDBC

一、JDBC是什么&#xff1f; JDBC(Java Database Connectivity):是Java访问数据库的解决方案。 JDBC定义了一套标准的接口&#xff0c;即访问数据库的通用API&#xff0c;不同数据库的厂商根据各自数据库的特点实现这些接口。 JDBC希望用相同的方式访问不同的数据库&#xff0c…

苹果发布iPhone AI,Apple Intelligence初版落地!未融入ChatGPT,仅面向付费开发者

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 苹果公司Apple Intelligence初版落地&#xff1a;iPhone AI引领智能化新篇章 在全球科技领域&#xff0c;苹果公司一直以其创新精神和前沿技术…

Potree点云可视化卡片开发指南

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 Potree点云可视化卡片开发指南 应用场景介绍 Potree点云可视化卡片是一款基于Potree库开发的Vue组件&#xff0c;它允许用户在Web应用程序中轻松嵌入和交互式可视化大规模点云数据。该卡片特别适用于需要在We…

Redis 内存淘汰策略

Redis 作为一个内存数据库&#xff0c;必须在内存使用达到配置的上限时采取策略来处理新数据的写入需求。Redis 提供了多种内存淘汰策略&#xff08;Eviction Policies&#xff09;&#xff0c;以决定在内存达到上限时应该移除哪些数据。

LLM的训练与推断

LLM的训练与推断 目前比较流行的大模型一般都是自回归模型。在推理时&#xff0c;它类似于RNN&#xff0c;每次计算下一个token的概率。也就是说&#xff0c;如果除去最开始的输入情况下&#xff0c;最终推理长度为n的话&#xff0c;就需要计算n次。但是训练却是并行化的。 在…

在国产芯片上实现YOLOv5/v8图像AI识别-【2.2】RK3588上C++开发环境准备及测试更多内容见视频

本专栏主要是提供一种国产化图像识别的解决方案&#xff0c;专栏中实现了YOLOv5/v8在国产化芯片上的使用部署&#xff0c;并可以实现网页端实时查看。根据自己的具体需求可以直接产品化部署使用。 B站配套视频&#xff1a;https://www.bilibili.com/video/BV1or421T74f 板子…

Idea包含UI内容的插件开发

Idea包含UI内容的插件开发 前言插件效果项目结构配置功能的实现找一个股票接口完成最终的页面配置Plugin.xml源码地址 前言 在这一篇文章中将会做一个包含UI内容的能看股票的插件。 插件效果 首先是在设置中配置股票的编号&#xff0c;如sh000001,sh600519。 接着在侧边栏中…

为何2024年这4款ai智能写作工具被赞为YYDS?

在数字化的大潮中&#xff0c;人工智能已经深入到我们生活的各个角落&#xff0c;当然也包括写作领域。随着ai智能写作工具的兴起&#xff0c;它们不仅显著提升了写作效率&#xff0c;还为创作打开了全新的可能性。今天&#xff0c;我们就来看看四款特别受欢迎的AI写作工具&…

干货分享 | 基于VB6.0 实现 CAN信号收发 Demo

本文主要讲的是&#xff0c;基于TSMaster 实现 TOSUN 系列 CAN/CANFD&#xff0c;LIN 设备的操作。主要给大家介绍在 TSMaster 软件里如何实现 CAN 信号收发 Demo工程。 本文关键词&#xff1a;CAN报文、VB6.0、libTSCAN 一、关于Demo工程 简要描述&#xff1a; VB6.0编程语…

Python药物副作用生物图分析算法和矩阵降维算法

&#x1f3af;要点 &#x1f3af;人体疾病模块网络结构位置与病理生物学关系 | &#x1f3af;药物与药物靶点相互作用 | &#x1f3af;细胞和蛋白质之间的作用分层 | &#x1f3af;疾病和症状之间的联系 | &#x1f3af;药物与副作用之间的联系 | &#x1f3af;生物学分析 &a…

年过30年程序员,到底要不要考虑搞点副业

一、前言 作为一名年过三十的程序员&#xff0c;我深刻体会到了职场的残酷和不确定性。在这个技术日新月异的时代&#xff0c;我们不仅要在专业领域深耕细作&#xff0c;更要敏锐地捕捉互联网的风口&#xff0c;以确保自己不被时代淘汰。程序员的黄金年龄似乎被限定在35岁之前…

事务性邮件api接口服务怎么选?怎么集成?

事务性邮件API接口安全性如何保障&#xff1f;API接口调用方法&#xff1f; 在现代企业的运营中&#xff0c;事务性邮件是确保信息及时传达和用户体验的关键环节。AokSend将探讨如何选择合适的事务性邮件API接口服务&#xff0c;以及如何有效地集成这些服务。 事务性邮件api接…

MongoDB下载与基本使用(mac图文详解)

目录 一、下载安装 1.1 官网下载mongoDB 1.1.1 mongoDB 1.1.2 MongoDB GUI 1.2 下载流程 二、基本使用 2.1 创建数据库和集合 2.2 插入 2.3 查询 2.4 修改 2.5 删除 三、case 3.1 销售case 3.1.1 实操 3.1.2 全部指令汇总 背景&#xff1a; 个人练习用 一、下…

《计算机网络》(第8版)第九章 无线网络和移动网络 复习笔记

第九章 无线网络和移动网络 一、无线局域网 WLAN 1 无线局域网的组成 无线局域网提供移动接入的功能&#xff0c;可分为两大类&#xff1a;有固定基础设施的和无固定基础设 施的。 &#xff08;1&#xff09;IEEE 802.11 IEEE 802.11 是无线以太网的标准&#xff0c;是有固定…

MySQL安装教程(保姆级)

1. 首先要了解自己的计算机 打开设置——系统——系统信息 然后就可以知道自己计算机的类型了。 2. 下载MySQL 2.1. 来到MySQL官网 点击进入 我们下拉页面&#xff0c;可以找到DOWNLOADS 页面默认给咱们选择最新的版本&#xff0c;咱们不用&#xff0c;咱们尽量选一个稳定的版…

Linux的防火墙

一、防火墙概述 防火墙是一种计算机硬件和软件的结合&#xff0c;使internet和intranet之间建立一个安全网关&#xff08;Security Gateway&#xff09;&#xff0c;从而保护内网免受非法用户侵入的技术。 防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成。…

绝密!OceanBase OBCP备考模拟题讲解(2)

「源de爸讲数据库」每天更新OceanBase OBCP题库及全网独家超详细题目解析&#xff0c;祝您早日持证上岸&#xff01; 现如今&#xff0c;一大批国产数据库随着国产化浪潮&#xff0c;已经逐步被越来越多的人认可。OceanBase便是其中一个优秀代表。 做这个日更专题&#xff0c;…

easy_Maze

结合题目,知道是一道迷宫题型 那么我们要做的就是 1.找到迷宫 2.确定方向(一般为wasd,但是可能会改) 3.确定起点 4.确定终点 // TAGS: dict_keys([spawn]) int __cdecl main(int argc, const char **argv, const char **envp) {__int64 v3; // raxint v5[49]; // [rsp0h]…