文件查找命令使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件查找命令使用相关的知识,希望对你有一定的参考价值。

  • 文件查找工具:locate、find
  • locate使用
  • find使用

为了高效提升效率,文件系统中的文件众多,Linux系统一切皆文件的思想,不免有时候忘记某个文件位于哪个文件夹,或具体叫什么名字等,使用ls/cd 等工具一个一个查找比较低效无用,对于内容查找可以使用‘三剑客‘。

  • locate使用
    依赖事先存在的索引库,数据并非实时更新,需要手动update或者cron任务实现周期更新;
    特点:
    查找速度快、模糊查找、非实时查找
    用法:
    locate [options] pattern..
    -b : 只匹配路径的基名
    -c : 统计出共有多少个符合的
    -r : 正则表达式匹配
  • find使用
    实时查找,通过遍历整个跟文件系统查找,比较消耗资源
    特点:查找速度略慢、精确查找、实时查找
    用法:
    find [options] [查找起始路径] [查找条件] [处理动作]
    查找路径:默认当前路径,指定精确的范围能够提高效率
    查找条件:指定查找的标准,文件名、大小、文件类型、从属关系、时间、权限
    处理动作:默认为标准输出至屏幕,可以对查找符合条件的文件做处理,如删除、执行某命令。
    查找条件:[选项[测试条件]]

    • 测试条件:布尔型结果true 、false
      组合测试:
      -a: 与关系,如何多个条件不加测试,默认为与关系
      -o: 或关系
      -not | !: 非关系

    • 根据文件名查找
      -name “pattern”
      -iname "pattern" :不区分大小写
      -regex "pattern":基于正则表达式查找,匹配是整个路径,而非其名
      支持glob通配符:*、?、[]、[^]...
      如查找/usr/share/中.jpg结尾文件:
      技术分享图片

    • 根据从属关系查找
      -user username:指定用户文件的属主查找
      -group groupname:指定文件的属组查找
      -uid UID :指定文件的uid查找
      -gid GID :指定文件的gid查找
      -nouser :查找没有属主的文件
      -nogroup :查找没有属组的文件

    • 根据文件类型查找
      -type TYPE
      f: 普通文件
      d: 目录文件
      l:符号链接文件
      b:块设备 文件
      c:字符设备文件
      p:管道文件
      s:套接字文
    • 根据文件大小查找
      -size [+|-] #单位 :单位常用K,M,G
      #3K:表示精确大小查找,(#-1,#]数学范围表示
      +3K:表示大于3K的文件,(#,0-0)
      -3K:表示小于3K的文件,(0,#)

    • 根据文件时间戳查找,即stat的三个时间戳
      以天为单位:类型 [+|-] #
      -atime :访问时间
      -mtime :修改时间
      -ctime :改变时间
      以分钟为单位:
      -amin
      -mmin
      -cmin
      以数轴为例区分【+|-】#
      技术分享图片

    • 根据文件权限查找
      -perm [/|-]mode
      mode:精确权限查找
      /mode:任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足;9位权限之间存在“或”关系;
      -mode:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足; 9位权限之间存在“与”关系;

    • 处理动作:
      -print:标准输出;默认动作;
      -ls:类似于对查找到的文件执行“ls -l”命令,输出文件的详细信息;
      -delete:删除查找到的文件;
      -fls /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中;
      -ok COMMAND ‘{}’ ; :对查找到的每个文件执行由COMMAND表示的命令;每次操作都由用户进行确认;
      -exec COMMAND {} ; :对查找到的每个文件执行由COMMAND表示的命令;
      注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递给后面的命令; 但是有些命令不能接受过长的参数,此时命令执行会失败;
      可以使用:find | xargs COMMAND
      如:找到/usr/share/下图片并复制到/tmp下
      技术分享图片
  • 以上只是查找文件,如何根据内容查找:如查找grub.d/下中文件包含有GRUB2_PASSWORD
    技术分享图片
    -r:表示递归查找
    -n:显示行号
    详细用法查看grep.

以上是关于文件查找命令使用的主要内容,如果未能解决你的问题,请参考以下文章

文件内容查找命令 linux下的find文件查找命令与grep文件内容查找命令

Linux下find命令和grep命令查找文件

linux如何查找文件

Linux 使用 find 命令查找文件

【笔记】grep 命令 - 查找文件内容

linux下的find文件查找命令与grep文件内容查找命令