locate、find命令使用总结

一、简介

   在linux系统中存在"一切皆文件"的说法,这就足以说明文件的重要性,因此查找文件也是我们必须要掌握的技能。这时候熟练使用locate、find命令也就显得至关重要。尤其是find命令常用于日常工作中如安装完某个软件之后要查看这些软件的安装配置路径,或是需要按指定条件直接查找我们需要操作的文件。因此更需要熟练掌握此命令。

二、用法详解

locate:模糊查找命令,查找的是linux系统每天特点时间自动索引备份到系统数据库中的文件。

优点:查找文件速度快

缺点:查找到的结果不是实时结果(必要时,可手动执行updatedb命令索引文件到数据库,但是相当耗时。)

格式:locate [OPTION]… PATTERN…

属于模糊非实时查询,只要查询路径包含关键字即会显示出查询结果,效果如下图:

blob.png

locate、find命令使用总结find:通过遍历指定的目标目录查找文件,可以根据文件名称、日期、大小、权限进行文件实时查找

优点:查找到的结果保证是实时结果

缺点:查找速度不如locate快

格式:

find [OPTIONS] [查找路径] [查找条件] [处理动作]

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path…] [expression]

查找路径:默认为当前路径

查找条件:默认为指定路径下的所有文件

处理动作:默认为显示到屏幕中

查找条件:

1、-name "文件名":支持使用globbing(*,?,[],[^]) 

例:按文件名查找命令为:find / -name "rpm",如下图:

locate、find命令使用总结blob.png

2、-iname 不区分文件名大小写

例:按文件名不区分大小写查找命令为:find / -iname "rpm",如下图:

locate、find命令使用总结blob.png

3、-user 根据属主查找文件

例:按属主查找文件命令为:find /tmp -user lxx,如下图:

locate、find命令使用总结blob.png

4、-group 根据属组查找文件

例:按属主查找文件命令为:find /tmp -group lxx,如下图:

locate、find命令使用总结blob.png

5、-uid 根据uid查找文件

例:按uid查找文件命令为:find /tmp -uid 502 -ls,如下图:

locate、find命令使用总结blob.png

6、-gid 根据gid查找文件

例:按gid查找文件命令为:find /tmp -gid 502 -ls,如下图:

locate、find命令使用总结blob.png

7、查找没有属主的文件

例:查找没有属主的文件命令为:find /tmp -nouser -ls,如下图:

locate、find命令使用总结blob.png

8、查找没有属组的文件

例:查找没有属组的文件命令为:find /tmp -nogroup -ls,如下图:

locate、find命令使用总结blob.png

9、组合查找条件

与(所有条件必须同时满足,-a默认可省):-a 查找条件1 -a 查找条件2 -a …

或(满足其中一个条件即可):-o 查找条件1 -o 查找条件2 -o …

非(不满足指定条件的才可以): -not,! 

    -not 查找条件

注:-a优先级高于-o优先级

例:查找条件,包含centos文件并且没有属组的文件,命令为:

find /tmp/ -name "*centos*" -a -nogroup -ls 等价于 

find /tmp/ -name "*centos*" -nogroup -ls

如下图:

locate、find命令使用总结blob.png

例:查找条件,包含centos文件并且没有属组的文件,命令为:

find /tmp/ -name "*centos*" -o -nogroup  (注意此处不能加-ls命令,会有问题),如下图:

locate、find命令使用总结blob.png

例:查找条件,查找属主不是root用的文件,命令为

find /tmp/ -not -user root -ls 或 find /tmp/ ! -user root -ls如下图:

locate、find命令使用总结blob.png

find复杂逻辑处理公式:

非A 且 非B = 非(A或B)

非A 或 非B = 非(A且B)

例:find /tmp/ -not -name "*.txt" -a -not -name "*.out" 等价于 find /tmp/ -not \( -name "*.txt" -o -name "*.out" \)   

注:小括号因为比较特殊,所以此处需转义

10、根据文件类型查找

命令格式:-type TYPE:根据文件类型查找

参数说明:

    -f:普通文件

    -d: 目录文件

    -l: 符号链接文件

    -b: 块设备文件

    -c: 字符设备文件

    -p: 命令名管道文件

    -s: 套接字文件

示例如下图:

locate、find命令使用总结blob.png

11、根据文件大小查找

命令格式:-size[+|-]#UNIT:

常用单位:k,M,G

#UNIT: #-1 < x <= #   如1.1k,1.9k,2k等都算作2k文件

如下图:

locate、find命令使用总结blob.pngblob.png

locate、find命令使用总结

-#UNIT:x <= #-1 如-2k:1k,0.9k等都符合条件,但是1.1k-1.9k就不符合条件

如下图:

locate、find命令使用总结blob.png

+#UNIT:x > # 如+2k:2.1k,3.1k都符合条件,不包含2k本身。

如下图:

locate、find命令使用总结blob.png

12、根据时间戳查找
 a.以为单位进行查找

    访问时间:-atime:[+|-] 

     修改时间-mtime:[+|-]  

     改变时间:-ctime:[+|-]

     计算公式如下:

      #: # <= x <= #+1

     -#:x < # 

     +#:x >= #+1

例:查找3天前的文件(大于等于3并且小于4),如下图:

locate、find命令使用总结blob.png

b.以分钟为单位进行查找
   访问时间:-amin:[+|-] 

   修改时间:-mmin:[+|-]  

   改变时间:-cmin:[+|-] 

例:查找5分钟之内访问过的文件,如下图:

locate、find命令使用总结blob.png

13、根据权限查找

命令格式:-perm[+|-]MODE

          MODE:与MODE精确匹配,示例如下图:

          blob.png

locate、find命令使用总结

         +MODE:任何一类用户的权限只要能包含对其指定的任何一位权限即可,例如555(r-xr-xr-x)这种情况无论属主属主其他用户只要拥有r或x任何一种权限即可匹配,示例如下图:

locate、find命令使用总结blob.png

        

         -MODE:每一类用户的权限都包含对其指定的所有权限即可,例如222(-w- -w- -w-)这种情况无论属主属主其他用户必须都包含写权限才能匹配,示例如下图:

locate、find命令使用总结blob.png

14、处理动作

参数说明:

     -print:默认动作,打印至屏幕

     -ls:显示找到的文件的详细属性

     -exec COMMAND {} \;    注:find配合-exec时如果要删除文件,执行后不确认直接删除(所有命令都不提醒)

     -ok COMMAND {} \;     注:find配合-ok时如果要删除文件,执行后需确认后才会删除(其他命令也会提醒)

-exec示例如下图:

locate、find命令使用总结blob.png

注意:find命令会一次性找到所有符合条件的文件,并一同传递给后面的命令,但有些命令不能接受过长的参数。解决办法:

find|xargs COMMAND,如下图:

locate、find命令使用总结blob.png

补充:实现查找文件后给文件改名,如下图:

参数说明:-i 选项告诉 xargs 用每项的名称替换 {}

-t 选项指示 xargs 先打印命令,然后再执行(想详细了解xargs命令执行过程可以加此参数)

locate、find命令使用总结blob.png

原创文章,作者:镜花水月,如若转载,请注明出处:http://www.178linux.com/7842

(0)
镜花水月镜花水月
上一篇 2015-08-28
下一篇 2015-08-31

相关推荐

  • 一. DHCP,TFTP, DNS 配置

    练习在CentOS6上配置DHCP, TFTP, DNS服务 1. 首先按下图所示搭建网络拓扑图 2017-07-11 151425-001.png Server1 服务器IP: 192.168.20.101/24GATEWAY: 192.168.20.2DNS: 192.168.20.2 Server2 服务器IP: 192.168.20.102/24GA…

    Linux干货 2017-07-11
  • lvm逻辑卷管理

    #LVM 逻辑卷管理 一、创建pv        创建pv可以在物理硬盘(裸盘上创建),MBR类型的分区(要更改分区类型为linux lvm: 8e )。GPT分区也要更改分区类型为8e00 Linux LVM 。    还可以在RAID上创建。注意要在没有数据的分区上…

    Linux干货 2016-09-02
  • MySQL-MMM安装指南(Multi-Master Replication Manager for MySQL)

    最基本的MMM安装必须至少需要2个数据库服务器和一个监控服务器下面要配置的MySQL Cluster环境包含四台数据库服务器和一台监控服务器,如下: function ip hostname server id monitoring host 192.168.0.10 mon – master 1 192.168.0.11 db1 1 maste…

    Linux干货 2015-05-01
  • CentOS下获取帮助

    CentOS中获取帮助 在使用和学习CentOS系统时,我们可能会遇上不熟悉的命令,需要获取帮助。在很多情况下,我们无法通过网络获取帮助,这个时候我们就需要自己通过查看系统帮助文档来解决问题。下面就来介绍获取帮助的方法: 1、 获取简单的帮助信息:whatis COMMAND   2、获取比较详细的命令帮助信息:help COMMAND;COMMA…

    2017-07-15
  • Linux 压缩、解压缩和打包工具

        前言:你是否曾经因为某个文件占用空间较大,而空间紧缺的U盘无法存放此文件。你是否曾经因为软件里有太多文件而不方便复制和携带。你是否曾因需要备份太过零散而头疼。那么基于“文件压缩和打包”的技术因此出现。下面介绍下Linux下关于压缩、解压缩和打包的工具及使用。 一、相关术语的原理和意义   &…

    Linux干货 2015-07-15
  • 第三周练习

    列出当前系统上所有已经登录的用户的用户名,注意:同一用户登录多次,只显示一次。                     ~]# who | cut -d" " …

    Linux干货 2016-11-09