Linxu自学之旅-基础命令(find搜索命令)

Linux自学之旅-基础命令(find搜索命令)


前言

1.上一节我们讲述了locate命令,主要讲述了其作用及基本使用,还没看的请点击下方链接进入:locate命令

2.这一节我们讲一个同样可以通过文件名进行搜索的命令find,不过find命令功能还强大些,它不只是可以通过文件名,还可以通过一些其他各种方式进行搜索


提示:以下是本篇文章正文内容

一、find

find命令和locate一样,可以在目录中进行搜索文件,不过locate只能通过文件名进行一个搜索,而我们的find不一样,它不止能进行文件名的搜索,还可以支持多种方式进行一个搜索。

  • 命令名称:find
  • 命令全称:search for files in a directory hierarchy
  • 所在路径:/usr/bin/find
  • 执行权限:所有用户
  • 功能描述:查询目录下文件
命令格式
find 查找路径 [选项]  搜索内容 [额外选项]

find支持的选项有很多,我们下面就慢慢来看。

二、find使用

1.根据文件名进行搜索

命令格式
find 查找路径 [选项] 查找内容
选项:
-name:按照文件名进行查找
-iname:按照文件名进行查找,不区分大小写
-inum:按照inode进行查找

举个例子:
1.如下图,我find后面接一个我要查找的路径,一个.代表我要查找当前所在路径,然后-name选项代表我要以文件名的方式进行查找,后面的*号代表匹配任意个字符,意思就是我要找以if开头的所有其他文件(在当前工作目录下查找以if开头的所有文件。)
在这里插入图片描述

2.根据文件大小进行搜索

命令格式
find 查找路径 [选项] 查找内容
选项::
-size [+/-]
(+代表搜索比查找大小大的文件,-代表搜索比查找大小小的文件)
查找内容:
b:这是以文件大小查找的默认查找大小,不写单位的话默认就是512Byte的查找内容
c:搜索单位是c,就是以字节进行查找
k:搜索单位是k,就是以KB进行查找(小写k)
M:搜索单位是M,就是以MB进行查找(大写M)
G:搜索单位是G,就是以GB进行查找(大写G)

举例子:
1.find . -size 4k:代表查找本目录下所有文件大小为4KB的文件。
在这里插入图片描述


2.find . -size +1M:代表查找本目录下所有大于1MB的文件。(如果1前面为-的话那就是查找比1MB小的文件,这里就不演示了)
在这里插入图片描述

3.根据修改时间进行搜索

命令格式
find 查找路径 [选项] 查找内容
-atime [+ | -]时间:按照文件访问时间搜索
-mtime [+ | -]时间:按照文件数据修改时间搜索
-ctime [+ | -]时间:按照文件状态修改时间搜索

这些时间我们之前都讲过,现在我就拿-atime来讲述一下[+ | -]时间怎么使用。

1.find . -atime 20 :代表在本目录下搜索前20和21那两天文件访问时间修改过的文件。
在这里插入图片描述


2.find . -atime -1:代表查找本目录下1天内文件访问时间修改过的文件。
在这里插入图片描述


3.find . -atime +2:代表查找本目录下3天前文件访问时间修改过的文件。
在这里插入图片描述

这个又是多少天前多少天内的很难理解吧,大家可以这样理解
{

-atime -10:像这种数字前面有减号的,我们一概看成多少天内的,-10就代表10天内的。

-atime 20:像这种没加任何加减号的,我们一概看成前x天和x+1天,现在x=20的话就代表前20天和第21天这两天的。

-atime +5:像这种数字前面有加号的,我们一概看成x+1天前的,+5就代表6天前的。
}
这样是不是就很好理解了呢?

4.根据权限进行搜索

命令格式
find 查找路径 [选项] 查找内容
-perm 权限模式:查找文件权限刚好等于“权限模式”的文件
-perm -权限模式:查找文件权限全部包含“权限模式”的文件
-perm +权限模式:查找文件权限包含“权限模式”的任意一个权限的文件

举例子:
1.find . -perm 644:代表查找本目录下所有权限刚好等于644权限的文件。(644权限:所有者:读写;所属组:读;其他人:读)
在这里插入图片描述


2.find . -perm -444:代表查询本目录下所有包含了444权限的文件。(也就是文件的所有者所属组其他人都有读权限就可以显示出来,少一个都不行,但是多的话也可以显示出来
在这里插入图片描述


3.find . -perm +444:代表查询本目录下权限位包含了4权限的文件(就是不管是所有者还是所属组其他人,只要你有读权限,就可以显示出来,+号和-号的区别就在于,比如-444,你所有者所属组其他人都必须至少要有读的权限才可能显示出来,但是+444呢,你所有者所属组其他人只要你其中一个部分有读权限就可以了,也就是不需要你三个部分的人都有444权限,他们只要拥有我+444这个代码其中的任意一个权限就可以显示出来)
在这里插入图片描述

5.根据所有者和所属组进行搜索

命令格式
find 查找路径 [选项] 查找内容
-uid 用户ID:按照用户ID查找所有者是指定ID的文件
-gid 组ID:按照组ID查找所属组是指定ID的文件
-user 用户名:按照用户名查找所有者是指定用户的文件
-group 组名:按照组名查找所属组是指定用户组的文件
-nouser:查找没有所有者的文件

举两个根据用户名和组名查找的例子:

1.find . -user root:代表查找当前目录下所有所有者是root的文件.
在这里插入图片描述


2.find . -group root:代表查找当前目录下所有所属组是root的文件.
在这里插入图片描述
至于-nouser选项实际上就是查找那种没有所有者的文件,这种没有所有者的文件如何产生的呢?比如你在U盘中有一份从windows下复制的文件,那么这个U盘的这个文件复制到Linux下的话就是没有所有者的.

6.根据文件类型进行搜索

命令格式
find 查找路径 [选项] 查找内容
-type d:查找目录
-type f:查找普通文件
-type l:查找软链接文件

举个例子:
1.find . -type f:代表查找当前目录下所有是普通文件的文件.
在这里插入图片描述

7.配合逻辑运算符同时进行搜索

命令格式
find 查找路径 [选项] 查找内容
-a :and逻辑与
-o :or逻辑或
-not :not逻辑非

逻辑运算符的话如果你学过开发那么应该都很清楚,不过这里我怕会有没有开发经验的朋友来看我的文章,所以我三个都举个例子.

-a:and逻辑与=含义是两方条件都成立的话,find搜索的结果才会成立.
举例子:
1.find . -user root -a -name jh2.txt:代表查找当前目录下所有所有者是root并且文件名为jh2.txt的文件.(也就是-user和-name中间加个-a的话,就必须要这两个条件都成立,find才会查找,也就是所有者必须是root的同时文件名也必须为jh2.txt)
在这里插入图片描述




-o:or逻辑或=含义是两方条件只要有一个成立,find都会进行一个条件查找
举例子:
2.find . -type f -o -type d:代表查找当前目录下文件类型是普通文件或者文件类型是目录的文件.(-type f 和-type d 中间加了-o的话就代表或者的意思,也就是find会查找文件类型是f的文件,或者说查找文件类型是d的文件.)
在这里插入图片描述




-not:not逻辑非=也就是取反的意思.
举个例子:
3.find . -not -name jh.txt:代表查询本目录下所有不包含文件名是jh.txt的其他文件.(这个很好理解,加了-not就代表要取反,如下图加了-not就是查找除了jh.txt这个文件以外的所有文件)
在这里插入图片描述

8.额外选项

命令格式
find 查找路径 [选项] 查找内容 [额外选项]
额外选项:
-exec 命令 {
    
    } \; :(-exec选项可以让你在查询文件的同时使用命令对文件进行操作)

我们拿文件名进行搜索的方式来举例子,如下图,我直接按照文件名的方式查找snljh2这个文件的话它会直接在屏幕中显示./snljh2出来.但是我现在有一个需求,我想要它不仅能搜索snljh2这个文件出来,我还要它以长格式的方式显示snljh2这个文件出来.这就要用到我们的-exec额外选项了.
在这里插入图片描述
举个例子:

1.find . -name snljh2 -exec ls -lh {} \;代表查找当前目录下文件名是snljh2的文件,并以ls -lh的形式显示出来.
{
1.1:加了-exec额外选项之后代表你在查找一个文件的同时可以使用一些命令对其进行一些操作.

1.2:-exec后面接ls -lh {}=代表将前面-name snljh2的结果赋予到{}这个框中进行执行,也就是将查找到的snljh2这个文件放到ls -lh中进行执行.

1.3:-exec ls -lh {} \; =至于后面的\;代表的就是一个结尾的意思,没有特殊含义.
}
在这里插入图片描述


总结

那么本节我们就讲到这了,我们主要讲了

{
1.find的基本介绍以及它的各种使用方式.
}
下节我们讲另外一个搜索命令

我是结花,我们下次见!

猜你喜欢

转载自blog.csdn.net/qq313088385/article/details/113572292