Linux下的find指令

2023-11-05

一、概述:
因为Linux下面一切皆文件,经常需要搜索某些文件来编写,所以对于linux来说find是一条很重要的命令。linux下面的find指令用于在目录结构中搜索文件,并执行指定的操作。它提供了相当多的查找条件,功能很强大。在不指定查找目录的情况下,find会在对整个系统进行遍历。即使系统中含有网络文件系统,find命令在该文件系统中同样有效。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间。

1、命令格式
find [查找目录] [查找规则] [查找完后的操作]
即:find pathname -option [-print -exec -ok …]

2、命令功能
用于在文件树中查找文件,并做相应的处理,(有可能访问磁盘)。

3、命令参数
(1)pathname:表示所要查找的目录路径,例如”.”表示当前目录,”/”表示根目录。
(2)-print:将find找到的文件输出到标准输出。
(3)-exec:对找到的文件执行exec这个参数所指定的shell命令,相应的形式为:-exec command {} \; 将查到的文件进行command操作,”{}”就代替查到的文件。

注意:
1)”{}”和”\”之间有一个空格。
2)-ok:和-exec的作用相同,只不过-ok更加安全一点,在执行每一个命令之前,系统会让用户确定是否执行。

二、查找规则:
1、根据文件名查找
(1)-name :根据文件名进行查找,区分大小写精确查找。
【例】
这里写图片描述

(2)-iname:根据文件名查找,不区分大小写
【例】
这里写图片描述

(3)文件名通配符:
“*”:通配任意的字符,可以是任何东西。
【例】
这里写图片描述

(4)”?”:可表示任意单个字符
【例】
这里写图片描述
注:与上例比较得知,空不为单字符,所以不能查找“file”文件。

(5)”[]”表示通配括号里面的任意一个字符,注意[]里面的内容会被解析成单个字符。
【例】
这里写图片描述

2、根据文件的时间戳信息查找文件
在根据时间戳信息查找的时候,所有的time都是以天为单位,min都是以分钟为单位。+n表示n以前,-n表示n以内。

(1)以最近一次存取的时间为参数
1)-atime:
A、find pathname -atime +n //表示n天前存取过的文件
B、find pathname -atime -n //表示以当前时间为起点前n天内存取过的文件

2)-amin :
A、find pathname -amin +n //表示n分钟前存取过的文件。
B、find pathname -amin -n //表示以当前时间为起点前n分钟内存取过的文件。
【例】
这里写图片描述

(2)以最近一次修改的时间为参数
1)-mtime:
A、find pathname -mtime +n //表示n天前修改过的文件
B、find pathname -mtime -n //表示以当前时间为起点前n天内修改 过的文件

2)-mmin:
A、find pathname -mmin +n //表示n分钟前存取过的文件
B、find pathname -mmin -n //表示以当前时间为起点前n修改 内存取过的文
【例】
这里写图片描述

(3)以最近一次更改的属性为参数
1)-ctime:
A、find pathname -ctime +n //表示n天前更改 过的文件
B、find pathname -ctime -n //表示以当前时间为起点前n天内更改 过的文件

2)-cmin:
A、find pathname -cmin +n //表示n分钟前更改过的文件
B、find pathname -cmin -n //表示以当前时间为起点前n分钟内更改 过的文件
【例】
这里写图片描述

3、根据文件所属用户和所属组来查找文件
(1)根据文件所有者查找文件:-user
【例】
这里写图片描述

(2)根据所有者所在的组查找:-group
【例】
这里写图片描述

4、根据nouser或nogroup查找
(1)查找无有效属主的文件:-nouser
find pathname -nouser
(2)查找无有效属组的文件:-nogroup
find pathname -nogroup
5、-perm :根据权限来查找文件
【例】
这里写图片描述

6、根据uid和gid查找文件
(1)根据文件的uid查找:-uid
(2)根据文件所在组的gid查找:-gid

7、-type:根据文件类型查找文件
(1)普通文件:f
find pathname -type f
【例】
这里写图片描述

(2)目录文件:d
find pathname -type d
【例】
这里写图片描述

(3)链接文件:l
find pathname -type l
(4)块设备文件:b
find pathname -type b
(5)字符设备文件:c
find pathname -type c
(6)管道设备文件:p
find pathname -type p
(7)套接字文件:s
find pathname -type s

8、根据文件大小查找文件:-size
(1)find pathname -size +n //表示大于n字节的文件
(2)find pathname -size -n //表示小于n字节的文件
(3)find pathname -size n //表示等于n字节的文件
【例】
这里写图片描述

9、按照参考文件的更改时间查找
-newer :file1//查找更改时间比file1的更改时间距离当前时间近的文件
【例】
这里写图片描述

10、maxdepth和mindepth
(1)-maxdepth
1)-maxdepth n : 搜索深度距离当前目录最多n个子目录深度
【例】
这里写图片描述

(2)-mindepth
2)-mindepth n :搜索深度距离当前目录至少n个子目录深度
【例】
这里写图片描述

11、查找路径下为空的文件或文件夹:-empty
【例】
这里写图片描述

12、按照硬连接的数目进行查找
(1)-link n :硬连接连接数等于n的文件或目录
【例】
这里写图片描述

(2)-link +n :硬连接连接数大于n的文件或目录
【例】
这里写图片描述

(3)-link -n :硬连接连接数小于n的文件或目录
【例】
这里写图片描述

13、-a、-o,-not(也就是与、或、非)
(1)-a:连接两个不同的条件(即两个条件必须同时为真)
【例】
这里写图片描述

(2)-o:连接两个不同的条件(两个条件只要满足一个即可)
【例】
这里写图片描述

(3)-not:对条件进行取反
【例】
这里写图片描述

14、查找完成之后的操作
(1) -exec command {} \;: 其中,”{}”就代表查找之后返回的文件。
【例】
这里写图片描述

(2)-ok command {} \;-ok相对于-exec而言更安全一点,会让用户确定所要执行的操作。
【例】
这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux下的find指令 的相关文章

  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • 如何在 Linux 上通过 FTP 递归下载文件夹 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • 为什么 Linux 没有 DirectX API?

    在考虑现代显卡的 Windows 系统上 DirectX API 的驱动程序端实现时 我想知道为什么此实现在非 Windows 系统 尤其是 Linux 上不可用 由于明显缺乏此功能 我只能假设有一个我无视的充分理由 但在我的原始理解中 我
  • 调用 printf 系统子例程在汇编代码中输出整数错误[重复]

    这个问题在这里已经有答案了 来回 在windows7控制台窗口中运行gcc s2 asm 然后生成一个exe文件 运行a exe 然后崩溃 为什么 s2 asm 代码由以下源代码生成 int m m 1 iprint m s2 asm请参考
  • 如何为 Linux 桌面条目文件指定带有相对路径的图标?

    对于我的一个 Linux 应用程序 我有应用程序二进制文件 一个 launcher sh 脚本 针对 LD LIBRARY PATH 和一个 desktop 文件 所有这些都位于同一文件夹中 我想使用图标的相对路径而不是绝对路径 我试过了
  • 我们真的应该使用 Chef 来管理 sudoers 文件吗?

    这是我的问题 我担心如果 Chef 破坏了 sudoers 文件中的某些内容 可能是 Chef 用户错误地使用了说明书 那么服务器将完全无法访问 我讨厌我们完全失去客户的生产服务器 因为我们弄乱了 sudoers 文件并且无法再通过 ssh
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 在centos中安装sqlite3 dev和其他包

    我正在尝试使用 cpanel 在 centos 机器上安装 sqlite dev 和其他库 以便能够编译应用程序 我对 debian 比 centos 更熟悉 我知道我需要的库是 libsqlite3 dev libkrb5 dev lib
  • tcpdump 是否受 iptables 过滤影响?

    如果我的开发机器有iptables规则到FORWARD一些数据包 这些数据包是否被 tcpdump 捕获 我有这个问题 因为我知道存在其他链称为INPUT如果数据包路由到 它会过滤发往应用程序的数据包FORWARD链 它会到达吗tcpdum
  • Linux 上的 Pervasive ODBC 错误 [01000][unixODBC][驱动程序管理器]无法打开 lib '/usr/local/psql/lib/odbcci.so':找不到文件

    我正在尝试让 Pervasive v10 客户端 ODBC 在 Centos 6 上运行 据我所知 没有 64 位 ODBC 客户端 因此我必须使用 32 位客户端 我终于成功安装了它 但尝试使用时出现以下错误 isql v mydsn 0
  • 从 ttyUSB0 写入和读取,无法得到响应

    我对 Linux tty 不太有经验 我的环境是带有丰富 USB 串行的 Raspbian 什么有效 stty F dev ttyUSB0 38400 cu l dev ttyUSB0 s 38400 cu to dev ttyUSB0作品
  • C 语言的符号表

    我目前正在开发一种执行模式匹配的静态分析工具 我在用Flex https github com westes flex生成词法分析器 我编写了代码来管理符号表 我不太有经验C 所以我决定将符号表实现为线性链表 include
  • 使用循环在 C 中管道传输两个或多个 shell 命令

    我正在尝试执行ls wc l通过 C 语言程序 而不是使用命令行 这是我当前的工作代码 int main int pfds 2 pipe pfds pid t pid fork if pid 0 The child process clos
  • 使用 MAX_ORDER / 包含 mmzone.h

    根据https www kernel org doc Documentation networking packet mmap txt https www kernel org doc Documentation networking pa
  • 在 Mono 上运行 .Net MVC5 应用程序

    我正在 Windows 上的 Visual Studio 2013 中开发 Net 4 5 1 MVC5 应用程序 现在我想知道 是否可以在Linux Ubuntu 12 04 上运行这个应用程序 可以使用OWIN吗 Owin 可以自托管运
  • 使用包管理器时如何管理 Perl 模块?

    A 最近的问题 https stackoverflow com questions 397817 unable to find perl modules in intrepid ibex ubuntu这让我开始思考 在我尝试过的大多数 Li

随机推荐

  • 数据库杂记

    数据库杂记 1 PostgreSQL 1 1 安装 UUID 生成扩展 1 2 根据多个字段去重 并删除重复数据 保留一条 1 3 表字段更新 1 3 1 同一张表用一个字段更新另一个字段 1 3 2 两张表关联更新 1 3 3 多张表关联
  • 图数据库突然爆火,但数字化仍然道阻且长

    短则两三年 多则五六年 图数据库市场会角逐出最终赢家 而目前许多公司都处于秣马厉兵的状态之中 数科星球 原创 作者丨科科 编辑丨十里香 图数据库的出现犹如大数据行业的一抹绿色 在日新月异的场景中 图数据库发挥了不可取代的作用 现在 该行业走
  • 前端数组对象去重的几种方法,拿来即用

    工作中有许多地方地方需要前端处理数据 总结了几种数据去重的方法都实验过 可以使用 初始数据 id有相同的需要去重 let person id 0 name 小明 id 1 name 小张 id 2 name 小李 id 3 name 小孙
  • SpringBoot2 升级到 SpringBoot3遇到的问题

    版本 JDK 11 gt 17 Gradle 6 0 gt 8 2 1 SpringBoot 2 2 gt 3 1 2 JDK升级 下载安装JDK17并修改JAVA HOME Gradle升级 下载 https services gradl
  • 用自然语言进行编程的时代真的要来了

    用自然语言进行编程的时代真的要来了 GitHub CEO托马斯 多姆克在官方博客上宣布 代码辅助工具Copilot进行重大升级 接入GPT 4 更名Copilot X 因此 原来只能帮你补全代码的它 现在通过打字聊聊天甚至语音就能 直接写代
  • python 过采样 权重实现_不平衡数据集的处理 - osc_sqq5osi1的个人空间 - OSCHINA - 中文开源技术交流社区...

    一 不平衡数据集的定义 所谓的不平衡数据集指的是数据集各个类别的样本量极不均衡 以二分类问题为例 假设正类的样本数量远大于负类的样本数量 通常情况下通常情况下把多数类样本的比例接近100 1这种情况下的数据称为不平衡数据 不平衡数据的学习即
  • 《ImageNet Classification with Deep Convolutional Neural Networks》 Alex Krizhevsky(AlexNet译文)

    原论文地址 caffe的实现 TensorFlow的实现 参考 AlexNet论文翻译与解读 alexnet 论文翻译 AlexNet论文 正文 摘要 我们训练了一个庞大的深层卷积神经网络 将ImageNet LSVRC 2010比赛中的1
  • Android应用自动更新实现方法及源代码

    Android应用自动更新实现方法及源代码 一 引言 随着移动应用的普及 保持应用程序的最新版本对于提供良好用户体验和修复漏洞非常重要 为了简化用户手动更新应用的步骤 开发者可以通过实现自动更新功能 使得应用程序能够在后台自动检查并下载最新
  • IDEA如何手动配置插件

    打开idea 点击File进入setting设置 点击plugins 点击设置按钮 这样你就会看到这样一个界面 别担心这是你的插件路径 这是idea插件下载官网https plugins jetbrains com 在这里可以随意下载插件
  • 关于Maven报错的一些解决办法(别处贴的)

    1 警告 The tag handler class for s form org apache struts2 views jsp ui FormTag was not found on the Java Build Path 这个问题终
  • 原生JavaScript实现ajax异步请求代码

    jQuery封装了JavaScript的一些常用方法 而jQuery中的 ajax get post 是比较常用的方法 也是大家最熟悉 最常用的 但是在面试时 通常面试官 会要求你手写原生ajax异步请求的代码 此时即便你的jquery学的
  • Solr删除文档数据

    使用控制台删除solr的无用数据 目前我使用了两种方式 001 登录你的solr地址 我的地址为 http localhost 8983 solr 如下图所示 上图箭头处选择你的my core 我的mycore为damsearch 002
  • [Python图像处理] 二.OpenCV+Numpy库读取与修改像素

    该系列文章是讲解Python OpenCV图像处理知识 前期主要讲解图像入门 OpenCV基础用法 中期讲解图像处理的各种算法 包括图像锐化算子 图像增强技术 图像分割等 后期结合深度学习研究图像识别 图像分类应用 希望文章对您有所帮助 如
  • 恐龙酷跑(python)

    恐龙酷跑小游戏 摘要 一 引言 二 系统结构 三 实现代码 四 运行结果 五 总结和展望 摘要 论述了Python语言中Pygame库的框架结构和一些常用的该库API 使用Python库进行2D游戏开发时需要注意的事项 以及进行2D游戏开发
  • 【Docker】Docker安装telnet

    文章目录 1 概述 1 概述 在使用docker容器时 有时候里边没有安装telnet 敲vim命令时提示说 telnet command not found 这个时候就需要安装vim 可是当你敲apt get install telnet
  • error LNK2019: 无法解析的外部符号 Netbios,该符号在函数 “unsigned char * __cdecl getMACAddress(unsigned char * cons

    我已经正确的加了库 头文件也能找到了 但是还是出现这个问题 说明还是库有问题 原因是我加入的是dcmtk库 是通信有关的 所以还需要在头文件位置加上如下的代码 pragma comment lib netapi32 lib
  • 元数据编辑器--(坑集锦)

    概述 Angular中的输入输出是通过注解 Input和 Output来标识 它位于组件控制器的属性上方 输入输出针对的对象是父子组件 我借鉴的博客地址 https segmentfault com a 1190000007890167 1
  • 人像抠图学习笔记

    目录 人脸分割BiseNetV2 u2net 人脸分割BiseNetV2 宣传的 BiSeNet V2出来了 72 6 的mIOU 156FPS的速度 让分割飞起来 模型30多m TensorFlow平台的 cpu版时间80ms 人脸抠图
  • 两个排序后数组中是否存在相同数字

    因为两个数组都是排好序的 所以只要一次遍历就行了 首先设两个下标 分别初始化为两个数组的起始地址 依次向前推进 推进的规则是比较两个数组中的数字 小的那个数组的下标向前推进一步 直到任何一个数组的下标到达数组末尾时 如果这时还没碰到相同的数
  • Linux下的find指令

    一 概述 因为Linux下面一切皆文件 经常需要搜索某些文件来编写 所以对于linux来说find是一条很重要的命令 linux下面的find指令用于在目录结构中搜索文件 并执行指定的操作 它提供了相当多的查找条件 功能很强大 在不指定查找