一.常用查找工具介绍

1clocate

基于数据库的查找。基于效率而言locate要快,但不够精确

2.find

基于文件目录下的实时查找。基于基于精确度而言,find会跟好一点,但就是稍显慢了。

二.find命令的使用

  • -name 根据文件名(区分大小写)
  • -iname 忽略大小
  • -lname 链接文件

注:根文件名是如果有空格或*要加“”

支持正则的全路径查找

  • -user 根据文件属主查找
  • -group 根据文件属组查找
  • -nouser -nogroup

查找没有属主或属组的文件

  • 多个命令时默认是相与的关系

find /etc  -user root   -name “*passwd”

     =find /etc  -user  root   -a   -name   “*passwd”

-o :表示“或”

-not:表示“非”

默认优先顺序: not—>a--->o

  • -perm
    • -perm mode 精确匹配
    • -perm   /mode  只要有一位匹配即可
    • perm   -mode   三类权限中每类至少有一位匹配
    • 位为0表示忽略
  • -uid  根据uid查找
  • -gid  根据gid查找
  • -type  根据文件类型
    • f 文件
    • d  目录
    • l  链接
    • b  块设备
    • c 字符设备
    • p  管道
    • s  socket 文件
  • -size  根据文件大小
    • b:512
    • c:byte
    • k:bb
    • M:mb
    • G:gb
    • -:小于
    • +:大于
  • atime 根据时间天 访问时间
  • mtime  修改时间
  • ctime  改动时间
    • +n:表示n天以前的
    • -n:表示n天以内的
  • amin 根据时间分的
  • mmin
  • cmin
    • +n:n分前的
    • -n:n分内的
  • -newer  更接近现在的

三.find查找于exec或ok的配合使用

  1. exec:接find的输出结果分条输出时不与用户交互
  2. ok:接find的所有结果后分条在输出,每输出一条就会询问用户是否输出。

        例如:find –name “*.sh”  -exec  ls –l  {}   \;

   注:{}:表示占位符。

         每条命令都要以\;结束。

   3..为防止find输出地数据太多在传向exec或ok时溢出,我们使用xargs

     例如:find –name  “*.sh” |xargs  ls –l