无论在何种系统下,都需要进行查找。Windows下进行查找我们已经轻车熟路了,但是linux下该如何进行查找呢?今天我就来讲讲如何进行查找。

通常情况下我们都是使用whereis和locate来进行查找的。但是如果遇到真的找不到的情况,就需要用find指令来进行查找了。但是使用find命令有一个缺点就是比较慢,因为whereis和locate都是利用数据库来查找数据的,速度相对来说是比较快的,但并没有实际查询硬盘,所以比较节省时间。在这些查找指令中,find可谓是十分强大的。find命令在目录结构中搜索文件,并执行指定的操作。即使系统中含有网络文件系统,find命令在该文件系统中同样有效。所以我们主要剖析find指令的用法。

首先我们来看看常用的whereis和locate是如何使用的呢?

  • whereis      寻找特定文件

    whereis [-bsmu] 文件或目录名

    参数剖析>>

    - b :只查找二进制文件

    - s  :只查找在说明文件manual路径下的文件

       -m : 只查找source源文件 - u :查找不在上述三个选项中的其他特殊文件

      使用示例:

剖析linux下Find指令_linux

  • locate        

    locate [-ir] keyword 

      参数剖析>>

       -i :忽略大小写

   -r:后面可接正则表达式的显示方式

       使用示例:

剖析linux下Find指令_linux_02

  • find

   find  [path] [option] [action]

参数剖析:

  1. 根据文件名或正则表达式匹配搜索

    -name  filename:查找文件名为filename的文件

    剖析linux下Find指令_find_03

  2. 根据文件大小进行查找

     -size  [+-]SIZE:查找比SIZE还要大(+)或小(-)的文件

剖析linux下Find指令_Windows_04

   3.根据文件时间进行查找

     -atime(上次访问这个文件的时间)、-ctime(文件的inode改变的时间)、-mtime(件的内容上一次发生改变的时候的时间)三种时间参数。以mtime为例:

     -mtime  n:n为数字,意义为在n天之前的一天内被更改过的文件

     -mtime  +n:列出在n天之前被更改过的文件名

     -mtime  -n:列出在n天之内被更改过的文件名

剖析linux下Find指令_find_05

  4.根据文件类型搜索

      find -type 文件类型

    f :普通文件

     l  :符号文件

     d :目录文件

     c :字符设备

     b :块设备

     s :套接字

     p  :管道文件

剖析linux下Find指令_find_06

  5.进行条件限制查找 

   -a  与条件

   -o  或条件

   -not 非条件(此参数的功能类似于否定参数‘!’)

剖析linux下Find指令_Windows_07

6.根据文件权限和文件所有人的查找

-perm  :按照文件权限查找

-user  :(或者是-uid n   n是用户账号的ID) 按照文件所有人查找

-group:(或者是-gid n   n是组名的ID)按照文件的所属组查找

剖析linux下Find指令_linux_08

剖析linux下Find指令_Windows_09

find命令还有很多,相信在以后的学习中可以更深入的学习。