linux文件查找find

一、locate

locate基于数据库索引来查找文件,数据库在开机时一段时间对更新,不会实时更新,数据库存放在(/var/lib/mlocate/mlocate.db),可以用updatedb来手动更新数据库。

优缺点:

  1. 查找速度快
  2. 模糊查找
  3. 非实时查找
  4. 搜索的是文件的全路径
  5. 只搜索用户具备读权限和执行权限的目录

locate KEYWORD

选项:

-i:不区分关键字大小写

-n #:打印匹配到的前#行

-r:使用正则表达式 

二、find

find查找会实时遍历磁盘,对服务器性能会有很大影响,使用时应该注意服务器的负载

优缺点:

  1. 查找速度慢,影响性能
  2. 精确查找
  3. 实时查找
  4. 只搜索用户具备读权限和执行权限的目录

find  【查找路径范围】【选项】【查找条件】【处理操作】

查找路径,默认为当前工作路径

1、查找条件

可以指定查找文件的文件名、大小、类型、权限等等指定条件

  1. --maxdepth #:最大搜索目录深度
  2. --mindepth #:最小搜索目录深度
  3. -name:指定文件名
  4. -iname:忽略文件名大小写
  5. -inum #:指定inode号
  6. -samefile FILE:指定和另一个文件相同的inode号,查找一个文件的硬链接
  7. -links #:指定查找有#个链接数的文件
  8. -regex "PATTERN":使用正则表达式匹配
  9. -user USERNAME:查找指定所属者的文件
  10. -group GROUPNAME:查找指定所属组的文件
  11. -uid UID:查找指定UID的文件
  12. -gid GID:查找指定GID的文件
  13. -nouser:查找没有所属者的文件
  14. -nogroup:查找没有所属组的文件
  15. -type:根据文件类型查找
    • f:普通文件
    • d:目录
    • l:符号链接
    • s:套接字文件
    • b:块文件
    • c:字符文件
    • p:管道文件
  16. -empty:查找空文件
  17. -size:按文件大小查找(c,k,M,G)
    • #:(#-1,#]
    • -#:[0,#-1]
    • +#:(#,+∞)
  18. -atime:按文件各时间查找(天)
    • #:[#,#+1)
    • +#:[#+1,∞]
    • -#:[0,#)
  19. -mtime
  20. -ctime
  21. -amin:按文件各时间查找(分钟)
  22. -mmin
  23. -cmin
  24. -perm 权限匹配
    • MODE 精确匹配
    • /MODE ugo是或者的关系
    • -MODE ugo是并且的关系,包含关系
  25. 组合添加查找
    • -a:并且
    • -o:或者
    • -not|!:不是

2、处理操作

对匹配到的文件做相应的操作,默认操作为输出到终端

-print:默认处理,打印到终端

-ls:以长格式列出文件

-delete:删除文件,不提示!

-fls NEWFILE:将长格式的文件列表保存到NEWFILE == -ls >NEWFILE

-ok CMD {} ;:指定处理动作,提示

-exec CMD {} ;:指定处理动作,不提示!

记录于2018.4.12 11:57

原文地址:https://www.cnblogs.com/L-dongf/p/8806467.html