Linux中find命令详解

news2024/12/27 2:41:08

记录linux中find命令的详细用法。

文章目录

  • find命令简介
  • 基本语法
  • 常用选项
    • -name
    • -iname
    • -type
    • -size
    • -mtime,-atime,-ctime
    • -perm
    • -user
    • -group
    • -delete
    • -exec
    • -print
    • and or
  • find --help

find命令简介

find 是一个搜索目录树以查找一个文件或一组文件的程序。它遍历目录树并报告与用户规范匹配的文件出现的所有实例。

简单说,就是find是一个遍历指定目录,找出符合你设定规则的一个文件或一组文件并输出。

基本语法

find [路径] [选项] [条件] [操作]

路径:要搜索的目录路径。如果未指定路径,默认为当前目录。
选项:主要控制查找行为和输出格式。
条件:定义查找标准,可以是文件名称、类型、大小等。
操作:对找到的文件执行的操作(如删除、打印等)。

常用选项

-name

-name :按名称查找,支持通配符。

find /path/to/search -name "*.txt"

查找所有扩展名为 .txt 的文件。

-iname

-iname :按名称查找,支持通配符, 大小写不敏感。

find /path/to/search -iname "*.jpg"

-type

-type :按文件类型查找。

f:普通文件
d:目录

find /path/to/search -type d

查找所有目录。
不加-type默认搜索文件

-size

-size:按文件大小查找。

find /path/to/search -size +100M

查找大于 100MB 的文件。
+ 表示大于,- 表示小于,c、k、M、G 分别表示字节、千字节、兆字节和吉字节。

大小的表示方式:
n:表示字节(默认单位)。
k:表示千字节(1K = 1024字节)。
M:表示兆字节(1M = 1024K)。
G:表示吉字节(1G = 1024M)。

大小比较符号:
+n:大于 n(例如,+10M 表示大于 10MB)。
-n:小于 n(例如,-100k 表示小于 100KB)。
n:等于 n(例如,100M 表示等于 100MB)。
示例
查找大于 100MB 的文件:

find /path/to/search -size +100M

查找小于 1KB 的文件:

find /path/to/search -size -1k

查找大小为 500字节的文件:

find /path/to/search -size 500c

注意,c 代表字节。

查找大于 2GB 的文件:

find /path/to/search -size +2G

结合其他条件使用:
查找大于 10MB 的文件并打印它们的名称:

find /path/to/search -type f -size +10M -print
find /path/to/search -type f -name "*.txt"
find /path/to/search -type d -iname "a.*"

注意事项
-size 只比较实际的文件大小,不包括文件系统的元数据或空洞文件(比如稀疏文件)。
不同文件系统的实际表示方式可能会影响到文件大小的计算,特别是在使用符号链接和文件系统的不同格式时。

-mtime,-atime,-ctime

-mtime:按文件修改时间查找。单位为天数,如-7为过去7天内。

find /path/to/search -mtime -7

查找过去 7 天内修改过的文件。
时间属性主要包括文件的访问时间(atime)、修改时间(mtime)和改变时间(ctime)。以下是一些常用的时间相关选项及其用法:

常用的时间选项
-mtime
描述:查找修改时间在指定天数范围内的文件。
用法:

find /path/to/search -mtime n

参数说明:
n:确定天数。例如,-1 表示过去 1 天,+1 表示超过 1 天,1 表示正好 1 天。
示例:

find /path/to/search -mtime -7

查找过去 7 天内修改的文件。
-atime

描述:查找访问时间在指定天数范围内的文件。
用法:

find /path/to/search -atime n

示例:

find /path/to/search -atime +30

查找 30 天前最后访问过的文件。
-ctime

描述:查找状态改变时间(如文件权限、属性等)在指定天数范围内的文件。
用法:

find /path/to/search -ctime n

示例:

find /path/to/search -ctime -5

查找过去 5 天内状态改变过的文件。
-newer

描述:查找比指定文件新(或旧)的文件。
用法:

find /path/to/search -newer file

示例:

find /path/to/search -newer reference_file

查找所有比 reference_file 新的文件。
组合使用时间选项
可以将时间选项与其他选项结合使用。例如,查找过去 7 天内被访问的 .txt 文件:

find /path/to/search -type f -atime -7 -name "*.txt"

时间单位
请注意,-atime、-mtime 和 -ctime 的单位是“天”,文件的时间以 24 小时为单位进行计算。这意味着如果文件在某一特定的日期被访问、修改或状态改变,没有考虑到时间段的细节,只是按天数来计算。

-perm

-perm:按文件权限查找。

find /path/to/search -perm 644

-user

-user:按文件属主查找。

find /path/to/search -user username

-group

-group:按文件用户组查找。

find /path/to/search -group groupname

操作
打印文件路径(默认操作):

find /path/to/search -name "*.txt"

-delete

删除文件:

find /path/to/search -name "*.tmp" -delete

查找并删除所有扩展名为 .tmp 的文件。

-exec

执行命令:
使用 -exec 可以对找到的文件执行命令。

find /path/to/search -name "*.log" -exec rm {} \;

查找并删除所有扩展名为 .log 的文件。
在 find 命令中,-exec 选项允许你对找到的每一个文件执行特定的命令。这是 find 的一个非常强大的功能,因为它可以使你在查找文件的同时对这些文件执行操作。

用法

find [路径] [条件] -exec [命令] {} \;

路径:要进行搜索的目录路径。
条件:用于查找文件的条件(例如,-type, -name, -size 等)。
命令:要执行的命令。使用 {} 来占位找到的每个文件。
\;:表示命令结束。必须使用反斜杠 \ 来转义分号,以避免被 shell 解释。
示例
删除找到的所有 .tmp 文件:

find /path/to/search -type f -name "*.tmp" -exec rm {} \;

这个命令将在指定路径下查找所有扩展名为 .tmp 的普通文件,并将它们删除。

修改权限:
查找所有普通文件并将其权限设置为 644:

find /path/to/search -type f -exec chmod 644 {} \;

拷贝文件:
查找并拷贝所有 .jpg 文件到另一个目录:

find /path/to/search -type f -name "*.jpg" -exec cp {} /path/to/destination/ \;

使用 -exec 执行多个命令:
可以通过 -exec 多次调用命令,或者使用+来合并多个文件作为参数:

find /path/to/search -type f -name "*.log" -exec ls -lh {} + 

在这个示例中,ls -lh 将应用于所有找到的 .log 文件,并且会批量执行(这样更高效)而不是逐个执行。

在这里插入图片描述
在这里插入图片描述

注意事项
使用 -exec 时,命令的输出将直接在终端显示。
由于执行的命令是通过 shell 直接调用的,所以要小心命令的输入,避免导致安全问题(如代码注入)。
-exec 是一种强大的工具,但在执行 rm 等危险命令时,请务必小心,确保你确实要删除的文件。
总结
-exec 是 find 命令中的一个极其有用的选项,能够使用户在查找文件的同时执行复杂的操作。结合其他选项,-exec 可以灵活地用于各种文件管理任务

-print

使用 -print 显示文件(虽然是默认操作,但可以与其他条件结合使用):

find /path/to/search -type f -print

组合条件
可以使用 -and 和 -or 组合条件:

find /path/to/search -type f -size +1M -or -name "*.jpg"

查找所有大于 1MB 的文件或扩展名为 .jpg 的文件。

举例
查找当前目录及其子目录中所有 .txt 文件:

find . -name "*.txt"

查找 /var/log 目录下最近 10 天被修改的文件:

find /var/log -mtime -10

查找 /home 目录中大于 50MB 的文件并删除:

find /home -type f -size +50M -delete

在 /tmp 目录下查找文件树结构,并输出所有 .bak 文件的路径:

find /tmp -name "*.bak" -print

查找所有用户 user1 拥有的文件,并将权限修改为 644:

find / -user user1 -exec chmod 644 {} \;

and or

在 find 命令中,逻辑运算符 -and 和 -or 用于组合多个条件,以便更精确地进行文件查找。这使得用户可以创建复杂的查询条件来满足特定需求。

使用 -and 和 -or
默认情况下,find 命令中的条件是与关系(-and)。如果你需要明确表示与关系,可以使用 -and。而使用 -or 则表示或关系。

语法

find [路径] [条件1] -and [条件2] ... 

或者

find [路径] [条件1] -or [条件2] ...

示例
使用 -and 来查找普通文件,且文件名以 .txt 结尾:

find /path/to/search -type f -and -name "*.txt"

这个命令会查找 路径 下的所有普通文件,并且文件名以 .txt 结尾。

使用 -or 来查找普通文件,文件名以 .jpg 或以 .png 结尾:

find /path/to/search -type f \( -name "*.jpg" -or -name "*.png" \)

这里使用了括号 ( 和 ) 来明确分组条件,以求减少混淆。这个命令会查找路径下所有文件名以 .jpg 或 .png 结尾的文件。

查找在过去 7 天内被修改的或文件大小超过 10MB 的文件:

find /path/to/search \( -mtime -7 -or -size +10M \)

结合 -and 和 -or 使用以查找特定条件:
查找所有 .log 或 .txt 文件,并且是普通文件:

find /path/to/search -type f \( -name "*.log" -or -name "*.txt" \)

注意事项
括号的使用:在使用逻辑运算符时,推荐使用括号 ( 和 ) 来明确条件的优先级。需要使用反斜杠 \ 来转义括号,以避免被 shell 解释。
默认与关系:在没有使用 -and 和 -or 的情况下,条件默认是 -and 的逻辑关系。
结合其他条件
你可以将 -and 和 -or 与其他条件(如 -type、-name、-mtime 等)结合使用,使查找更加灵活。例如:

find /path/to/search -type f \( -name "*.jpg" -or -name "*.png" \) -and -size +5M

这个命令会查找所有大于 5MB 的文件,且文件扩展名为 .jpg 或 .png。

总结
使用 -and 和 -or 能够灵活地根据多个条件进行文件查找,使 find 命令变得更加强大和多样化。

find --help

find-help

Usage: find [-H] [-L] [-P] [-Olevel] [-D debugopts] [path...] [expression]

default path is the current directory; default expression is -print
expression may consist of: operators, options, tests, and actions:
operators (decreasing precedence; -and is implicit where no others are given):
      ( EXPR )   ! EXPR   -not EXPR   EXPR1 -a EXPR2   EXPR1 -and EXPR2
      EXPR1 -o EXPR2   EXPR1 -or EXPR2   EXPR1 , EXPR2
positional options (always true): -daystart -follow -regextype

normal options (always true, specified before other expressions):
      -depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf
      --version -xdev -ignore_readdir_race -noignore_readdir_race
tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N
      -cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME
      -ilname PATTERN -iname PATTERN -inum N -iwholename PATTERN -iregex PATTERN
      -links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE
      -nouser -nogroup -path PATTERN -perm [-/]MODE -regex PATTERN
      -readable -writable -executable
      -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N
      -used N -user NAME -xtype [bcdpfls]      -context CONTEXT

actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print
      -fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit
      -exec COMMAND ; -exec COMMAND {} + -ok COMMAND ;
      -execdir COMMAND ; -execdir COMMAND {} + -okdir COMMAND ;

Valid arguments for -D:
exec, opt, rates, search, stat, time, tree, all, help
Use '-D help' for a description of the options, or see find(1)

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

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

相关文章

VMware虚拟机NAT模式配置

1、宿主机 2、宿主机网络适配器 VMnet8 ①要与虚拟机在同一网段 ②不能和宿主机同一网段 3、VMware 4、虚拟机

短视频剪辑工具有哪些?推荐4个简单好用的工具

短视频如今充斥着我们的生活,刷短视频已经成了很多人的生活必备。所以掌握短视频剪辑技能是一件很重要的事情,能够为视频创作者带来很多的流量。如果想要学习剪辑的话,可以先从选择一款合适的剪辑工具开始,这几款功能丰富的软件&a…

Google ads投广中的这些问题,看你中了没

谷歌广告是一个强大的工具,可以显著提升外贸独立站的流量和销售。但是,要想充分发挥其潜力,需要深入了解其工作原理,并掌握如何设定预算、选择关键词、创建广告文案等技巧。以下是一些在谷歌广告投放过程中网友遇到的一些问题及其…

基于ESP8266—AT指令连接阿里云+MQTT透传数据(1)

在阿里云创建MQTT产品的过程涉及几个关键步骤,主要包括注册阿里云账号、实名认证、开通MQTT服务实例、创建产品与设备等。以下是详细的步骤说明: 一、准备工作 访问阿里云官网,点击注册按钮,填写相关信息(如账号、密码、手机号等)完成注册。注册完成后,需要对账号进行实…

Solaris11.4配置远程桌面登录

Solaris11.4配置远程桌面登录 一. 版本信息 1. 内核版本信息 rootsolaris11:~# uname -a SunOS solaris11 5.11 11.4.27.82.1 sun4v sparc sun4v rootsolaris11:~# rootsolaris11:~# rootsolaris11:~# cat /etc/releaseOracle Solaris 11.4 SPARCCopyright (c) 1983, 2020, …

【EXCEL数据处理】000009 案列 EXCEL单元格数字格式。文本型数字格式和常规型数字格式的区别

前言:哈喽,大家好,今天给大家分享一篇文章!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【EXCEL数据处理】000009 案列 EXCEL单元格数字格式。文本型数字格式和…

2024年国外优质API:情绪识别口碑佳

随着全球一体化进程的加速,跨语言沟通需求提升,进而催生出大量语种识别类型API服务。此类服务致力于协助使用者便捷且精确地辨识文本所属的语种,从而实现各类多语言文本处理、自动化翻译及文本解析等功能。 目前,市面上已出现多种…

麒麟服务器装完系统后删除backup以及swap分区的操作步骤

一、需求描述 将V10-SP3服务器的klas-backup、klas-swap两个lvm分区删除掉。 现场原来lvm结构如下: 二、注意事项 在缩减lvm前,必须做好数据备份。 三、操作步骤 1、执行vgs、lvs查看vg、lv [root@server-sp3 ~]# vgsVG #PV #LV #SN Attr VSize VFreeklas 1 3 …

微服务——服务保护

1.雪崩问题 级联失败或雪崩问题指的是在微服务架构中,由于服务间的相互依赖和调用,当一个服务出现故障时,会引起调用它的服务也出现故障,进而引发整个调用链路的多个服务都出现故障,最终导致整个系统崩溃的现象。 产生…

阿里巴巴国际站获取商品详情item_get接口技术分享

在跨境电商日益繁荣的今天,如何高效、准确地获取商品信息成为了商家们关注的焦点。阿里巴巴作为全球领先的B2B电商平台,其提供的item_get API接口成为了跨境电商获取商品信息的必备工具。本文将详细介绍item_get接口的功能、优势、应用场景以及返回数据字…

yolov5/v7/v8随机种子固定方法

参考:https://blog.csdn.net/qq_45062768/article/details/133852543 https://blog.csdn.net/qq_45062768/article/details/133204618 yolov7的 import pkg_resources as pkg def check_version(current0.0.0, minimum0.0.0, nameversion , pinnedFalse, hardFal…

Transformer算法7个面试常见问题

1.Transformer为何使用多头注意力机制?(为什么不使用一个头) 英文论文中是这么说的: Multi-head attention allows the model to jointly attend to information from different representation subspaces at different position…

AtCoder Beginner Contest 373(ABCDEF 题)视频讲解

A - September Problem Statement There are 12 12 12 strings S 1 , S 2 , … , S 12 S_1, S_2, \ldots, S_{12} S1​,S2​,…,S12​ consisting of lowercase English letters. Find how many integers i i i ( 1 ≤ i ≤ 12 ) (1 \leq i \leq 12) (1≤i≤12) satisfy …

【line features】线特征(2)

【line features】线特征(2) 1. line features实现原理1. **初始化与参数设置**:2. **图像读取**:3. **线特征检测**:4. **线特征描述子计算**:5. **特征匹配**:6. **匹配结果可视化**&#xff…

递归算法介绍和【题解】——数楼梯

递归算法介绍和【题解】——数楼梯 1.递推算法介绍2.数楼梯题目描述输入格式输出格式输入输出样例输入 #1输出 #1 提示 1.思路解析2.AC代码 1.递推算法介绍 有些目标是宏大的,比如如果你想找到一个好工作,需要先把面试通过。要把面试通过,就需…

c++11~c++20 结构化绑定

结构化帮绑定可以作用于3中类型 一、原生数组类型 结果: 备注:绑定到原生数组所需条件仅仅是要求别名的数量于数组元素的个数一致,这里的x,y,z分别绑定到a[0],a[1],a[2] 二、绑定到结构体和类对象 结果:…

C99中的变长数组

在C99标准之前,从语言在创建数组的时候,指定数组的大小只能使用常量和表达式,或者数据初始化的时候,可以省略数组大小。 1.int arr[5]{1,2,3,4,4}; 2.int arr[24]{1,2,3,4,5,6}; 3.int arr[]{1,2,3,3,4,5,6}; 这样的语法限制不够灵…

新疆阿克苏地区新和县召开2024年重大项目高质量发展推进会

五一水库及生态修复产业融合发展等14个项目动工兴建 9月29日,新疆阿克苏地区新和县举行2024年重大项目高质量发展推进会上,五一水库生态修复暨产业融合发展重点项目等14个项目正式动工兴建。 据了解,此次开工的14个项目,总投资17…

LPDDR4芯片学习(二)——Functional Description

一、LPDDR4寻址表 以每个die容量为4GB为例: Memory density(per channel) 2Gb:每个通道大小为2Gb,一个die有两个通道Configuration 16Mb 16DQ 8 banks 2 channels :16Mb的寻址空间16位每个channels8个bank*每个die两channels。1…

电影《749局》酷燃首映 苗苗神秘感大片释出氛围感拉满

2024 年 9 月 30 日,电影《749 局》在北京举办首映礼,导演陆川携主创王俊凯、苗苗、郑恺、任敏、李晨、杨皓宇出席,演员苗苗在片中饰演 749 局成员夏婳,这个角色天赋异禀,拥有特殊异能,为影片增添一抹神秘色…