文件查找:locate/find

文件查找就是在文件系统上查找符合条件的文件,工具名分别为:locate和find

locate是非实时查找或数据库查找的工具;而find则是实时查找工具。

locate

locate依赖于事先构建的索引。索引的构建是在系统较为空闲时自动进行(即为周期性任务),也可以手动更新数据库(updatedb)

注意:索引构建过程需要遍历整个根文件系统,极其消耗资源。

它的工作特点有:查找速度快,模糊查找和非实时查找

语法:

    locate KEYWORD

find

find是实时查找工具,通过遍历指定路径下的文件系统完成文件查找。


它的工作特点有:查找速度略慢,精确查找和实时查找

语法:

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

        查找路径:指定具体目标路径,默认为当前目录。

        查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行,默认为找出指定路径下的所有文件。

        处理动作:对符合条件的文件做什么操作,默认输出至屏幕。

    查找条件是根据文件名查找

        -name "文件名称" (支持使用glob)

        -iname "文件名称" :不区分字符大小写

        -regex "PATTERN":以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称

    根据属主、属组查找

        -user USERNAME:查找属主为指定用户的文件

        -group GRPNAME:查找属组为指定组的文件

        -id UserID:查找属主为指定的UID号的文件

        -gid GroupID:查找属组为指定的GID号的文件

        -nouser:查找没有属主文件

        -nogroup:查找没有属组的文件

    根据文件类型查找

        -type TYPE

        组合条件如下

            与:-a

            或:-o

            非:-not,!

        示例:找出/tmp目录下,属组不是root,且文件名不是fstab的文件。

            find /tmp -not \( -user root -o -name 'fstab' \) -ls

    根据文件大小来查找

        -size [+|-]#UNIT

        常用的单位有:k,m,g

            #UNIT:(#-1,#)

            -#UNIT:[0,#-1]

            +#UNIT:(#,无限大)

    根据时间戳

        以 天 为单位        

            -atime [+|-]#

            -mtime

            -ctime

        以分钟为单位

            -amin

            -mmin

            -cmin

    根据权限查找

            -perm [+|-]MODE

                MODE:精确权限匹配

            +MODE:任何一类(u,g,o)对象的权限中只要能一位匹配即可

            -MODE:每一类对象都必须同时拥有为其指定的权限标准

    处理动作

        -print:默认的处理动作,显示至屏幕

        -ls:类似于对查找到的文件执行 "ls -l" 命令

        -delete:删除查找到的文件

        -fls /path/to/somefile:查找到的所有文件的长格式信息

        -ok COMMAND {}\:对查找到的每个文件执行由COMMAND指定的命令

            对于每个文件执行命令之前,都会交互式要求用户确认

        -exec COMMAND {}\:对查找到的每个文件执行由COMMAND指定的命令

    注意:find传递查找到的文件至后面指定的命令时,查找到的所有符合条件的文件一次性传递给后面的命令。有些命令不能够接受过多参数,此时命令执行可能会失败。

        find | xagrs COMMAND  这种方式可规避此问题

原创文章,作者:黑白子,如若转载,请注明出处:http://www.178linux.com/12687

(0)
黑白子黑白子
上一篇 2016-03-12 23:12
下一篇 2016-03-13 01:55

相关推荐

  • N22-妙手-第七周博客作业第四题:RAID各级别的特性

    什么是RAID RAID的全称是Redundant Array of Independent Disks – 独立磁盘冗余阵列。基本思想是将多个相对便宜的硬盘组合成为一个硬盘阵列,使其在性能上达到或超过一块价格昂贵、容量巨大的硬盘。RAID通常被用在服务器上,使用完全相同的硬盘组成一个逻辑扇区,因此操作系统会把其当做一块硬盘。RAID分为不同的等…

    Linux干货 2016-09-27
  • Linux 启动流程

    Linux启动流程 POST–>Boot Sequence–>MBR–>Grub–>Kernel(initramfs)–>rootfs–chroot(根切换)–>/sbin/init–>RunLevel–&gt…

    Linux干货 2016-06-09
  • Linux运维学习历程-第六天-Linux用户、组以及权限管理

    本章内容    Linux的安全模型    用户和组    用户和组管理命令    文件权限    默认权限    特殊权限    ACL访问控制 一:3A认证       &nb…

    Linux干货 2016-08-07
  • dd命令详解

    dd命令: convert and copy a file用法:  dd if=/PATH/FROM/SRC of=/PATH/TO/DEST   bs=#: block size, 复制单元大小   count=#:复制多少个bs   of=fil…

    Linux干货 2017-03-19
  • 文本处理三剑客-grep及正则表达式初

    什么是正则表达式 基本正则表达式的元字符 扩展正则表达式 grep的基本理解 grep的基本选项 grep的应用实例 什么是正则表达式   正则表达式,又称正规表示法、常规表示法。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式的文本。(…

    Linux干货 2016-08-07
  • 常见的文本处理工具及正则表达式的相关知识

    1.cat命令使用详解 cat [option]… [file]… -A equivalent=vET -b 非空行编号 -E 行为显示$ -n 显示所有行的行号 -s 行号并压缩连续空行为一行 -T 显示tab为^M 实例:显示a文件的行号及所有控制符 2.(1)head使用详解 head -n x 显示前x行 head -c x …

    Linux干货 2016-08-07