Linux怎么搜索文件?使用find常用搜索文件有哪几种方式,以及怎么对搜索结果进行处理?

引言:上期回顾(想要学习的童鞋可以点击看看)

    上一章我们讲述了怎么修改一个文件的所有者、所属组以及怎么查看和修改默认创建文件的权限。这一章我们来讲怎么搜索文件,在使用widows来搜索文件相信大家都使用过,在我们linux系统当然也有这个功能。在这里给大家一个小的建议,我们linux系统中使用find来搜索文件,最重要的不是文件能不能找到,而是需要尽量少使用搜索。尤其是在服务器高峰期的时候,使用全局搜索文件是很不好的,所以大家在使用服务器的尽量规划好自己的文件目录结构。


1、使用find搜索文件的几种方式

    1.1 find的使用格式

            命令:find ,使用语法 find [搜索范围] [搜索条件]

            这一章我们针对find命令进行文件搜索,find是一个很复杂命令,使用方式也有很多,如果全部讲完可能几个小时都说不完,所以我们这一章会介绍find常用的几种方式。

             搜索范围:就好比如在winodws当中你是需要在C盘下搜索,还是在其他盘进行搜索,当然也可以是文件夹。

             搜索条件:我们常用的一般都是通过文件名来进行模糊搜索,也有通过文件大小、修改时间等等一些条件来进行筛选。

    1.2 通过文件名进行搜索

              命令例子:find /root -name filename

              首先我们来说说怎么通过文件名进行搜索,例子中的"-name"的意思就是通过文件名来进行搜索,如下图使用来find来搜索tomcat文件夹。像这种情况下是使用的精确搜索,必须知道文件名的情况下使用,如果只记得文件名其中某几个字符呢?我们可以使用"**"通配符来进行搜索,如果你只记得前几个的字符后几个字符不记得了,可以使用"?"占位符,代表着一个字符来进行搜索。

               我们linux系统之前有说过,是严格区分大小写的,若果现在我们搜索的文件中包含了大小写怎么办?我们可以使用"-iname"选项,忽略大小写进行搜索。

              

    1.3 通过文件大小进行搜索

              命令例子:find /root -size 文件大小(单位是数据块)

              我们使用文件大小进行搜索文件,先需要了解数据块大小是怎么转换的,比如我们先来找个10M以上的文件。

               1数据块 = 512字节 = 0.5k

               10M = 10240k = 20480数据快 差不多就是10M了,1k等于2个数据块。

               符号 + 大于多少、- 小于多少、什么都不写就是文件大小等于多少,一般我们使用都是大于或者小于多少

                               

    1.4 通过所有者、所属组进行查找文件

                命令例子:find /root -user 所有者名

                命令例子:find /root -group 所属组名

                在linux也可以通过创建文件的所有者、以及文件的所属组来进行查询,前提所有者以及所属组必须存在。

                

    1.5 通过文件类型进行搜索

                 命令例子:find /root -type   文件类型(d:代表目录、f:代表文件、l:代表软链接)

                 如果说想搜索的文件需要指定文件类型就可以使用"type"的选项。

                 那如果我想查找文件夹的名称为tomcat并且类型是目录的怎么办呢? 当我们需要针对多个条件进行筛选的时候,可以使用"-a:表示and,并且的意思"、"-o:表示or,或者的意思",那命令就该这样写"find /root -name tomcat -a -type d",这样就可以达到名称为tomcat并且是目录的文件。

                 "-a:多个条件需要同时满足、-o:多个条件满足一个即可",可以连接任何条件。

                 

    1.6 怎么对查询出来对结果进行处理?

                命令例子: find -name fileF4 -exec rm {} \;

                比如说我们需要查询出一个文件名为"fileF4"的文件,然后进行删除,只需要在命令结尾加上 "-exec或者-ok 需要执行的命令 {} \;",大家记住这是一个固定的格式。

                "-exec"和"-ok"有什么区别呢? "-ok"会一个一个文件的提示你,比如说你想要把查询出来的文件进行删除,使用ok会一个一个文件的提示你是否需要删除。

                

    1.6 通过时间来进行搜索

                命令例子:find /root amin -5

                分类: 1 amin 访问时间、2 cmin 属性修改时间、3 mmin 文件内容修改时间

                符号也是"+、-",+表示大于多少时间、-表示多少时间以内,单位为分钟

                比如说我想查找root目录下在5分钟以内内容被修改过的文件:find /root -mmin -5,就可以这样写。

    1.7 通过i节点进行搜索            

                命令例子: find /root -inum i节点

                之前在讲查看文件的时候提到过每个文件都有一个i节点,当我们遇到奇形怪状的文件名的时候,我们使用ls -i来查看每个文件的i节点,在使用搜索命令查找相对应的文件,然后进行操作。

猜你喜欢

转载自blog.csdn.net/weixin_38111957/article/details/79832563