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 17:36
下一篇 2015-08-31 10:21

相关推荐

  • http协议

    ##socket套接字– 套接字,进程间通信IPC的一种实现,允许位于不同主机(或同一主机)上不同进程之间进行通信和数据交换。– socketAPI:封装了内核中所提供的socket通信相关的系统调用– socketDomain:根据其所使用的地址– AF_INET:Address Family,Ipv4&#8…

    Linux干货 2017-12-06
  • find用法及德·摩根定律

    德·摩根定律   奥古斯都·德·摩根首先发现了在逻辑命题中存在着下面这些关系:      非(P且Q)=非P或非Q      非(P或Q)=非P且非Q 上述逻辑命题可以解释为:    not ( P and Q)=not P or not Q    …

    Linux干货 2016-08-18
  • bash的基础特性之一

    bash的基础特性之一 命令历史:shell进程会保存会话中此前用户使用过的命令; history:命令的用法 history 【-c】【-d #】 【n】或者【文件名】     -c:清空命令历史     -d 【#】:删除指定的命令历史…

    Linux干货 2016-12-18
  • 谈谈对于vmware Workstation 网络连接三种模式的认识.

    简介: VM(VMware Workstation简称VM,后面都将用VM代替阐述)是一款功能强大的虚拟化软件.VM支持在 单一的桌面上同时运行多款不同的操作系统,能够模拟完整的网络环境,支持pxe功能.实时快照,等等多种强 大的功能.能够测试软件和部署新的业务测试.同时节约了很多资源.节约了企业成本.所以对于广大的互联网 从业者是不可多得的好工具. 本文中…

    Linux干货 2015-08-24
  • 马哥教育网络21期+第十二周练习博客上

    1、请描述一次完整的http请求处理过程; (1)建立或处理连接:接受请求或拒绝请求 (2)如果接受请求:     并发访问响应模型:         单进程I/O结构:启动一个进程处理用户请求,而且一次只处理一个,多个请求被串行响应; &…

    Linux干货 2016-10-17
  • ☞磁盘管理、MBR、GPT、分区工具、文件系统、常见分区挂载

    磁盘管理{磁盘结构;MBR;GPT;分区工具;文件系统;分区挂载;}

    Linux干货 2016-08-29