Linux 常用命令之——文件搜索命令find、locate、which、whereis、grep

一、命令名称:find

命令所在路径:/bin/find

执行权限:所有用户

语法: find  [搜索范围] [匹配条件]

$find /etc -name init       -name       在某路径下根据文件名称搜索文件

$find /etc -iname ?init*                -iname  在某路径下根据根据文件名称不区分大小写模糊搜索

$find /etc -size 204800     -size  或者 +size    表示文件大小小于或大于多少的文件,去掉 + -表示精确查找文件大写为多大的文件

$find /etc -cmin -5        -cmin  文件属性change  查找距现在不超过5分钟内文件属性被修改的文件

$find /etc -amin -5                             -amin       访问时间access  查找距现在访问时间不超过5分钟的文件

$find /etc -mmin -5                         -mmin      文件内容modify  查找距现在访问时间不超过5分钟文件内容被修改的文件

                                    

功能描述:文件搜索

最常用的选项操作范例:

1、根据文件或目录名称搜索(精确搜索和模糊匹配搜索)

$ find /etc -name init        在目录/etc中查找文件init

注:如果只知道文件名称的部分,可以通过占位符的方式进行拼接搜索,规则为:

* 号表示匹配任意个字符

?号表示匹配单个字符

例如:

1) $ find /etc -name  *init*      表示在目录/etc中查找文件名称 含有init 的文件

2) $ find /etc -name init*   表示在目录/etc中查找文件名称 以init 开头的文件

3) $find /etc -name  init?   表示在目录中查找文件名称以 init开头,且后面跟一个字符(或者说五个字符,前四个字符是init) 的文件

4) $ find /etc -name ?init  表示在目录/etc中查找文件名称以 init结尾的文件

2、根据文件名或目录,不区分文件名称中大小写进行搜索

$find  /etc -iname init                 -iname 不区分文件名称大小写

注:如果不确定文件的大小写,可以用 -iname 选项代替-name

实例:

1) $ find /etc -iname init  会查找出/etc目录中 文件名称为init的文件或者 INIT 文件或者 Init文件等等

3、根据文件大小进行搜索

$find  /    -size +n    在根目录下查找大于n数据块个单位大小的文件   

 +n  大于   -n 小于 n等于    

特别注意: 这里的n表示的是一个数字,单位是数据块,数据块和平常普通看到的文件大小的单位字节有所区别,

      数据块和字节以及kb的换算关系为:  1个数据块 = 512字节 =0.5k

实例:

1) $ find / -size +204800    这里表示在根目录下搜索文件大小大于100MB的文件

2) $ find  /etc -size -163840 -a -size -204800               在/etc下查找大于80MB 小于100MB的文件

特别补充!!!: -a 选项表示两个条件同时满足,a可理解为and

                                -o 选项表示两个条件满足任意一个即可,o可理解为or

3) $ find /etc -name inittab -exec ls -l {} \;                    在/etc 下查找inittab文件并显示其详细信息

 特别补充!!!: -exec/-ok 命令 {} \;        对搜索结果执行操作

特别注意连接符    -exec 表示执行完前面命令后继续执行后面的命令

           -ok    表示执行完前面的命令结束后,系统会询问是否执行后面的命令

   上述命令特别注意后面的 大括号符号和反斜杠以及分号结尾符,该符号为固定内容

例如:$ find /home -usr shenchao -ok rm {} \;   表示将/home目录下所有者为shenchao的所有文件删除,删除前有是否删除确认

4、根据文件或目录所有者(一般为文件或目录的创建者)搜索

$find  /home -usr  shenchao  在根目录下查找所有者为shenchao的文件

5、根据文件或目录的所属组进行搜索

$find  /home -group  meinv  在根目录下查找用户组为meinv组的文件

6、查找某个时间段内或外被修改过属性或者内容的文件:

实例:

1)$ find /etc -cmin -5    查找/etc目录中距现在5分钟内文件属性被修改过的文件

2) $ find  /etc -amin -10 查找/etc目录中距现在10分钟内被访问过的文件

3) $ find /etc -mmin -30 查找/etc目录中距现在30分钟内文件内容被修改过的文件

7、根据文件类型进行查找,文件类型包括: 文件- f ;       目录-d ;      软链接文件-l

实例:

1) $ find /etc -name init*  -a  -type d     表示查找出/etc目录下名称以init开头 并且 文件类型为目录的 所有目录

2)$ find /etc -name init* -a -type  f      表示查找出/etc目录下名称以init 开头 并且 文件类型为文件的 所有文件

8、根据文件i节点进行查找

实例;

1)$ find . -inum 31531 -exec rm {} \;   表示在当前目录下查找并删除i节点为31531开始的文件

2)如何确定一个文件是否有硬链接?

方法步骤: 先查找该文件的属性信息,确定该文件的 i 节点,然后在该文件所在的分区,搜索 i 节点为该数字的文件

所用原理: 一个文件的硬链接和文件本身一定在同一个分区内

命令:

 

其他文件搜索命令

二、文件搜索命令:locate

命令名称:locate

命令所在路径:/usr/bin/locate

执行权限:所有用户

语法:locate  文件名

功能描述:在文件资料库中查找文件,不是实时文件

范例:$ locate inittab

搜索快的原因:该命令直接搜索自己的文件库,而不是像其他搜索某个磁盘

locate命令的缺点:非实时查找命令;可以使用updatedb命令强制更新资料库,以使用locate搜索命令 对部分目录中的文件不进

行收录,比如/tmp

以上命令类似于windows中的工具everything

三、更精确的文件搜索命令:which

命令名称:which

命令所在路径:/usr/bin/which

执行权限:所有用户

语法:which 命令

功能描述:搜索命令所在目录及别名信息,通过获取命令所在路径,可基本判断该命令的使用权限范围,比如,在sbin目录下的,说明只有root用户才有权限使用;

范例: $ which ls

             $which cp

            $ which rm

四、更精确的文件搜索命令:whereis

命令名称;whereis

命令所在路径:/usr/bin/whereis

执行权限:所有用户

语法:whereis [命令名称]

功能描述:搜索命令所在目录及帮助文档路径

范例:$  whereis ls

注意:which 和whereis 命令是用于搜索 命令 所在路径的信息,which可查询命令的路径和别名信息,whereis命令可查询命令的路径和帮助文档所在的路径。通过路径是否在/sbin目录下,可确认是否只有root权限可用。通过帮助文档路径,可以帮助查找该命令更多信息

五、文件搜索命令:grep  

命令名称:grep

命令所在路径:/bin/grep

执行权限:所有用户

语法:grep -iv  [指定字串]  [文件]

                     -i  不区分大小写

                     -v  排除指定字串

功能描述:在文件中搜寻字符串的行并输出,搜索某个文件内的某些字符串所在一行的信息

范例:# grep mysql /root/install.log    表示查找/root目录下,install.log文件中 myssql 字符串所在行信息

 注意:该命令也被称为文件搜索命令,但是该命令与find  which  whereis等命令不同,

以上命令是在Linux系统中,查找某个文件的属性等信息,是为了找到文件,而grep命令

是为了在某个确定的文件中查找某些字符串等的信息。

即  find      locate 用于在大量目录中查找某个文件

 而 which  whereis 用于在大量目录中查找某个命令的路径

而 grep                  用于在某个文件中搜索某个字符串

总结:-i 不区分大小写的选项在 find  locate grep等多个命令中作用共通

     在Linux很多配置文件中,有很多的# 开头的行,表示注释信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值