linux的 find 命令详解

linux的 find 命令详解

find命令:用来在给定的目录下查找符合给定条件的文件
命令格式: find [OPTIONS] [查找起始路径] [查找条件] [处理动作]

一、OPTIONS参数

-P、-L、-H:控制软连接的对待方式,用的不多。不介绍了

二、查找路径

就是个目录路径,相对和绝对都可以。

三、查找条件

1、根据名称查找

(1) -name “PATERN”
(2) -iname “PATERN” :不区分名称字母大小写
在这里插入图片描述
(3)-regex PATTERN:基于正则表达式的模式查找,匹配的是整个路径,而非单个文件名。
在这里插入图片描述

2、根据文件从属关系查找:

-user USERNAME:查找属主指定用户的所有文件;
-group GRPNAME:查找属组指定组的所有文件;
-uid UID:查找属主指定的UID的所有文件;
-gid GID:查找属组指定的GID的所有文件;
在这里插入图片描述
-nouser:查找没有属主的文件;
-nogroup:查找没有属组的文件;
 在这里插入图片描述

3、根据文件的类型查找:

-type:根据不同的文件类型筛选

type文件类型
f普通文件
d目录文件
l符号链接文件
b块设备 文件
c字符设备文件
p管道文件
s套接字文件

在这里插入图片描述

4、根据文件的大小查找:

-size [+|-]#UNIT
常用单位:k, M, G
#UNIT:(#-1, #]
#UNIT:[0,#-1]
+#UNIT:(#, oo)
 在这里插入图片描述

  1. 1k时:a3只有15个字节,也被算做1k也查询,即条件符合大于0k ( #-1 ),小于等于1k (#);
  2. +1k时:a和a1满足大于1k(#)的条件;
  3. -62k时:只有a3满足大于等于0,小于等于 61k(#-1)的要求。
5、根据时间戳查找:

按照atime(文件的最后访问时间)、mtime(文件的最后修改时间)、ctime(文件最后改变时间)三个变量来查询:
以天为单位,
-atime [+|-]#
#:[#, #-1) :最后访问时间在#天前(大于等于#天前,小于#-1天前)
等价于最后访问时间与当前的时间差 大于 (#-1)*24小时,小于等于 #*24小时

-#:(#, 0] :最后访问时间在#天以内,不包括24小时前的那一刻。
等价于最后访问时间与当前的时间差小于 #*24小时

+#:(oo, #-1] :最后访问时间在#-1天以前的。包括#-1天前
等价于最后访问时间与当前的时间差大于等于 #*24小时

以“分钟”为单位:-amin;-mmin;-cmin

-daystart:时间条件的开始先决条件。如果没有的时候,比较的开始时间为当前时间。如果有此参数,则比较的开始时间为当天的23:59:59。

6、根据权限查找

-perm
-perm [/|-]mode
mode:精确权限匹配;
/mode:任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足;9位权限之间存在“或”关系;
-mode:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足。9位权限之间存在“与”关系;
举例:
(1):精确查找。就是匹配权限值完全相等的;
(2):/mode。 只要有一组用户匹配到一个权限即可。
通俗说:就是属主拥有给定属主权限的某一个,或者数组拥有给定权限的某一个,或者其他用户拥有给定权限的某一个即可。
表示属主拥有执行权限 或者 数组拥有写权限, 或者 其他用户拥有写权限。
(3):-mode。并且的关系。
通俗说:就是给定的属主权限必须拥有。并且给定的数组权限必须拥有。并且给定的其他用户权限必须拥有。
表示属主拥有执行权限 并且 数组拥有写权限, 并且 其他用户拥有写权限。

四、处理动作:

  1. -print:输出至标准输出;默认的动作;
  2. -ls:类似于对查找到的文件执行“ls -l”命令,输出文件的详细信息;
  3. -delete:删除查找到的文件;
  4. -fls /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中;
  5. -ok COMMAND {} ; :对查找到的每个文件执行由COMMAND表示的命令;每次操作都由用户进行确认;
  6. -exec COMMAND {} ; :对查找到的每个文件执行由COMMAND表示的命令;
    在这里插入图片描述
    注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递给后面的命令;
    但是有些命令不能接受过长的参数,此时命令执行会失败;另一种方式可规避此问题: find | xargs COMMAND

参考文档:https://www.cnblogs.com/scrit/p/5854197.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值