Linux中的查找指令:find

柔光的暖阳◎ 2022-07-13 07:48 332阅读 0赞

思维导图

为了使后面的讲解更加清晰,我们先附上find命令的思维导图
这里写图片描述


命令的使用

下面我们对find命令的参数和选项进行测试,熟悉该指令的应用。

option

一.与文件时间有关的参数的指令

前面我们提到了Linux文件系统的三个时间,他们分别是mtime,atime,ctime,下面我们先来进行一下简单的回顾:

  • mtime:文件系统的修改时间,如果文件的内容被修改则会更新mtime。
  • atime:文件系统的访问时间,如果对文件进行进行访问,并且保证atime=mtime,就会更新该文件的atime.
  • ctime:文件系统的状态修改时间,如果对文件的某些属性,例如size,权限等进行了改变,便会更新该文件的ctime.

我们可以使用下面的指令来根据文件时间查找相关文件:

  1. find pathname -mtime n;
    查找pathname下n天前更改了内容的文件(包括n天前这一天);
  2. find pathname -mtine -n;
    查找pathname下n天内更改了内容的文件;
  3. find pathname -mine +n;
    查找pathname下n天前更改了内容的文件(不包括n天前这一天);

例如:我们用find命令查找在/home/lzh/code下查找两天前更改文件内容的文件:
这里写图片描述


二.与系统用户有关的参数

  1. uid:uid为用户的ID号,它主要记录在/etc/passwd的文件当中,我们可以根据用户的ID号来查找它的文件。
    例如:我们通过uid查找/home/lzh/code/下的lzh用户的文件
    这里写图片描述
    使用了find命令后,它把code目录下的文件都列举了出来,因为这些文件的所有者都为lzh.
  2. gid:一个文件不光有其所有者,还有其所在的用户组,用户组所对应的ID号为gid,我们也可以通过find pathname -gid n的指令来查找用户组ID号为n所对应的文件。
  3. user:通过用户的ID号去查找文件其实是一种间接查找用户所拥有的文件的方式,我们还可以简单直接一点,直接通过用户名去查找文件。
    例如:我们查找根目录下用户名为lzh的文件:
    这里写图片描述
    在查找出来的文件中,列出来了lzh目录下的文件以及root用户下所有者为lzh的文件。
  4. group:有了前面的直接根据用户名查找文件,我们还可以直接根据用户组名查找某一个用户组所对应的文件。
    指令为: find pathname -group groupname
  5. 如果/etc/passwd文件中没有某个我们要查找的用户名,我们可以指定不带用户查询,它查找出来的结果为/etc/passwd中不存在的用户名.例如:我们在前面注释掉了leap1和leap6用户的相关内容,使用:
    find / -nouser 查找根目录下不在/etc/passwd中存在的用户

    这里写图片描述

  6. 当然我们还可以查找/etc/group中不存在的用户组所对应的文件,直接使用
    find pathname -nogroup 指令即可。

三.与文件权限及名称有关的参数

  1. name :首先,我们可以直接根据文件名来查找文件,直接使用-name参数即可。
    例如:我们查找/home/lzh/code/TestCode/下名称包含test的文件:
    这里写图片描述
  2. 权限(mode):另外,我们还可以根据文件的权限来查找文件
    使用下面的三条指令:

-perm mode:查找文件的权限恰好为mode的文件
例如:我们查找权限为u=rw,g=r,o=xxx的文件:
这里写图片描述
-perm -mode:查找文件权限“必须要全部包括mode的权限”的文件
这个意识是所查找的文件的权限必须要首先包括我们所指定的权限,其次还可以包括其他权限:
这里写图片描述
-pern +mode:查找文件的权限“包含任一mode的权限”的文件
这条指令大家可以拿去测试一下,只要包含了所指定的其中一个权限,find便会把该文件查找出来.

  1. size(文件大小):我们还可以根据文件的大小来查找文件,主要有下面两条指令:
    find pathname -size +SIZE 查找指定目录下文件大小大于SIZE的文件
    find pathname -size -SIZE 查找指定目录下文件大小大于SIZE的文件
  2. type(文件的类型)
    Linux下文件的类型主要有:
    f:正规文件
    b,c:设备文件
    d:目录
    l:链接文件
    s:套接字
    p:管道p
    我们来查找lzh用户中当前目录下所有的目录文件
    这里写图片描述

总结:上面我们将主要能用到的find命令的指令都介绍了一遍,另外,我们还要注意一点的是find是在磁盘中查找的指令,其查找速度相对较慢。

发表评论

表情:
评论列表 (有 0 条评论,332人围观)

还没有评论,来说两句吧...

相关阅读