访问手机版  

Linux常用命令|Linux培训学习|考试认证|工资待遇与招聘,认准超级网工!

招聘|合作 登陆|注册

网络工程师培训

当前位置:网络工程师 > 技术课程 > linux > 热点关注 > linux常用命令

linux的find命令详解

时间:2019-07-10

linux命令大全_linux命令大全 root_linux命令大全软件

linux的find命令详解

find命令是用来在给定的目录下查找符合给定条件的文件

find [OPTIONS] [查找起始路径] [查找条件] [处理动作]

一、OPTIONS参数

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

二、查找路径

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

三、查找条件

(一)、根据名称查找

-name "PATERN"

-iname "PATERN" :不区分名称字母大小写

-regex%20PATTERN:基于正则表达式的模式查找,匹配的是整个路径,而非单个文件名。

(二)、根据文件从属关系查找:

-user%20USERNAME:查找属主指定用户的所有文件;

-group%20GRPNAME:查找属组指定组的所有文件;

-uid%20UID:查找属主指定的UID的所有文件;

-gid%20GID:查找属组指定的GID的所有文件;

-nouser:查找没有属主的文件;

-nogroup:查找没有属组的文件;

(三)、根据文件的类型查找:

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

普通文件

目录文件

符号链接文件

块设备%20文件

字符设备文件

管道文件

套接字文件

(四)、根据文件的大小查找:

-size%20[+|-]#UNIT

常用单位:k,%20M,%20G

#UNIT:(#-1,%20#]

-#UNIT:[0,#-1]

+#UNIT:(#,%20oo)

1、1k时:a3只有15个字节,也被算做1k也查询,即条件符合大于0k%20(%20#-1%20),小于等于1k%20(#)

2、+1k时:a和a1满足大于1k(#)的条件

3、-62k时:只有a3满足大于等于0,小于等于 61k(#-1)的要求。

(五)、 根据时间戳查找:

按照atime(文件的最后访问时间)、mtime(文件的最后修改时间)、ctime(文件最后改变时间)三个变量来查询:

以天为单位,

-atime [+|-]#

#:[#, #-1) :最后访问时间在#天前(大于等于#天前,小于#-1天前)

等价于最后访问时间与当前的时间差 大于 (#-1)*24小时,小于等于 #*24小时

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

等价于最后访问时间与当前的时间差小于 #*24小时

+#:(oo, #-1] :最后访问时间在#-1天以前的。包括#-1天前

等价于最后访问时间与当前的时间差大于等于 #*24小时

-mtime

-ctime

以“分钟”为单位:

-amin

-mmin

-cmin

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

查询出来的各个文件名称对应时间如下:

文件名

修改时间

服务器当前时间

09/08%2017:34

09/08%2017:20

09/07%2012:20

09/08%2013:20

09/07%2022:20

(六)、根据权限查找

-perm

-perm%20[/|-]mode

mode:精确权限匹配;

/mode:任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足;9位权限之间存在“或”关系;

-mode:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足。9位权限之间存在“与”关系;

看案例:

(1):精确查找。就是匹配权限值完全相等的;

(2):/mode。 只要有一组用户匹配到一个权限即可。

通俗说:就是属主拥有给定属主权限的某一个,或者数组拥有给定权限的某一个,或者其他用户拥有给定权限的某一个即可。