美文网首页LinuxLinux学习
从零开始学习Linux(七):文件搜索命令find

从零开始学习Linux(七):文件搜索命令find

作者: 通靈鹿小六 | 来源:发表于2020-11-27 11:12 被阅读0次

1、find

命令作用:搜索文件或目录
命令格式:find [搜索范围] [匹配条件]

1.1、在指定路径下搜索关键字对应的文件或目录

命令格式: find [搜索范围] -name "[关键字] "

在/tmp/song目录下面搜索qinghuaci.txt文件,执行命令:

find /tmp/song/ -name "qinghuaci.txt"

此种查询方式是全部匹配,并且大小写要一致

1.2、在指定路径下模糊匹配关键字对应的文件或目录

命令格式: find [搜索范围] -name "*[关键字] *"

*通配符,可以匹配任意字符。

  • qing* 表示关键字是以qing开头;
  • *qing 表示关键字是以qing结尾;
  • *qing*表示关键字中包含qing;

查询以qing开头的文件或目录,执行命令:

find /tmp/song/ -name "qing*"

查询包含yaogun的文件或目录,执行命令:

find /tmp/song/ -name "*yaogun*"

?通配符,可以匹配任意一个字符。

  • qingtian?? 表示关键字以qing开头,后面跟两个字符。

执行命令:

find /tmp/song/ -name "qingtian??"

以上命令查询都是严格区分大小写的。

如果想忽略大小写查询 需要使用 -iname,执行命令:

find /tmp/song/ -iname "tiantiande"

注意:最好不要在服务器运行高峰时使用查找命令。find命令占用内存较高,因此为了减少内存使用。搜索的范围越小越好,搜索条件越精准越好。

1.3、根据所有者查找文件或目录

命令格式:find [搜索范围] -user [所有者名]

查找所有者为zhoujielun的文件或目录,执行命令:

find /tmp/song/ -user zhoujielun
1.4、根据所属组查找目录或文件

命令格式:find [搜索范围] -group [所属组名]

查找所属组为shuaige的文件或目录,执行命令:

find /tmp/song/ -group shuaige
1.5、根据文件大小查找

命令格式:find [搜索范围] -size {+-}[数据块]

数据块前面符号含义:

  • +表示查找大于这个大小的文件;
  • -表示查找小于这个大小的文件;
  • 不加符号表示查找等于这个大小的文件(一般不用);

数据块大小说明:一个数据块=512字节=0.5K
因此要查找大于100MB的文件,数据块应该设置为100*1024/0.5=204800。

执行命令:

find /etc -size +204800

从图中可以看出来,并没有大于100M和10M以上的文件。大于1M的文件有四个。

1.6、根据时间查找被访问的文件或目录

命令格式:find [搜索范围] -amin {+-}[时间]

  • a表示access;
  • 时间单位是分钟;
  • +N表示N分钟以前,-N表示N分钟以内;

查找/tmp/song目录下面,30分钟以内访问的目录或文件。执行命令:

find /tmp/song/ -amin -30
1.7、根据时间查找被修改过属性的文件和目录

命令格式:find [搜索范围] -cmin [时间]
c表示change,其中被修改过属性可以理解为ls -l中的信息被更改。

执行命令:

find /tmp/song -cmin -10
1.8、根据时间查找被修改过内容的文件和目录

命令格式:find [搜索范围] -mmin [时间]
m表示modify。

执行命令:

find /tmp/song -mmin -10
1.9、多条件同时查找

例如上面根据文件大小查找的命令。

查找大于10M的文件,执行命令:

find /etc -size +20480

查找小于100M的文件,执行命令:

find /etc -size -204800

如果现在想同时查询大于10M小于100M的文件,则需要使用命令进行联合查询。

  • -a:同时满足条件;
  • -o:满足其中的一个条件即可;

执行命令:

find /etc -size -204800 -a -size +20480
1.10、查找指定类型的文件

-type 根据不同类型查找

  • f:文件;
  • d:目录;
  • l:软链接;

查找包含yao的目录或文件,忽略文件大小写限制。执行命令:

find /tmp/song/ -iname "*yao*"

在查找的同时指定只查找文件,执行命令:

find /tmp/song/ -iname "*yao*" -a -type f

在查找的同时指定只查找目录,执行命令:

find /tmp/song/ -iname "*yao*" -a -type d

因为有2个条件需要同时满足,所以要使用-a连接命令。并且使用-type来区分不同的文件类型。

1.11、对查询结果执行命令

命令格式:find [搜索范围] -name [关键字] -exec [其他命令] {} \;

参数说明:

  • -exec 对查找结果进行命令操作;
  • -ok 用于询问操作,一般在删除操作的时候使用;

注意:在使用exec或ok命令的时候,其后面的{} \; 不能少。{}和\之间必须要有一个空格,\和;之间不能有空格。

执行命令:

find /tmp/song/ -iname "*yao*" -a -type f -exec ls -l {} \;

执行结果如下图所示:

执行命令:

find /tmp/song/ -iname "*yao*" -a -type f -ok rm {} \;

对于查找到的文件进行删除命令,并且要提示。执行结果如下图所示:

1.12、根据i节点查找

命令格式:find [搜索范围] -inum [i节点值]

执行命令:

find /tmp/song/ -inum 663188 -ok rm {} \;

执行结果如下图所示:

从图中可以看到,tiantiande这个文件的i节点值是663188 ,通过命令删除后,再次查看,提示没有文件或目录了。

相关文章

  • 基础篇

    Linux学习 一、find命令 1、搜索文件的命令:which、whereis、locate、find a、wh...

  • 碎碎念 b

    Linux中的搜索命令 文件搜索命令locate 命令搜索命令 忘记是啥了 find命令,其中find命令有好多后...

  • 文件搜索命令 find grep

    文件搜索命令 find <非常强大> find 命令 find [搜索范围] [搜索条件] 搜索文件 find /...

  • Linux搜索命令find和grep使用总结

    前言 find和grep是Linux最基本的搜索命令,find用于搜索文件,grep用于搜索文件内容,熟练掌握其用...

  • linux安装gitlab

    注意:linux命令1、全局搜索文件find / -name (文件名)2、显示输入过的命令history3、搜索...

  • 从零开始学习Linux(七):文件搜索命令find

    1、find 命令作用:搜索文件或目录命令格式:find [搜索范围] [匹配条件] 1.1、在指定路径下搜索关键...

  • Linux find命令查找文件

    Linux Find命令 Linux find命令用来在指定目录下查找文件。 学习参考地址:https://www...

  • find

    Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功...

  • (19)find命令概述

    Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功...

  • find命令/文件名后缀

    Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功...

网友评论

    本文标题:从零开始学习Linux(七):文件搜索命令find

    本文链接:https://www.haomeiwen.com/subject/glqaiktx.html