find命令

linux一切皆文件,因此文件查找还是比较重要的

linux下查找命令有两个

locate
find

  1. locate
    locate是对其生成的数据库进行遍历,生成数据框,updatadb
    因此查找很快,但是只能对文件进行模糊匹配
    locate -i 查找文件的时候不区分大小写,比如locate -i passwd
    locate -n 只显示查找结果的前N行,比如locate -n passwd

  2. find
    find命令不指定查找目录的话是对整个系统进行遍历查找
    find 目录 规则 查找完后的action
    find /etc /tmp /root -name passwd
    目录之间用空格分开
    1). 根据文件名查找
    -name 精确查找
    -iname 不区分大小写
    *表示通配任意字符
    ?表示通配任意单个字符
    []表示通配括号里面任意一个字符
    find /tmp -name "[ab].sh"带双引号
    2).根据用户和组查找文件
    -user -group
    3).根据uid和gid查找用户
    find /tmp -uid 500
    find /tmp -gid 1000
    4).-a and -o and -not 的使用
    -a连接两个不同条件,两个条件同时满足
    -o两个不同条件
    -not 对条件取反
    5).时间戳
    -atime 访问时间
    -mtime 修改时间
    -ctime 属性修改时间
    -amin 单位是分钟
    -mmin
    -cmin
    +n 表示多长时间内没有访问或者修改的
    -n表示多长时间内访问过或者修改的
    6).文件类型
    -type
    f 普通文件
    d 目录
    l 连接文件
    b 块文件
    p 管道文件
    s socket文件
    find /tmp -type s
    所以这个查找两个月内的文件,不查目录就可以是
    nohup find /HAS/MBSData/ -mtime -70 -not -type d > findResult.txt &
    7).根据大小查找文件
    -size

find /tmp -size 2M 等于2M
find /tmp -size +2M 大于2M
find /tmp -size -2M 小于2M```
8).文件权限
`-perm`

find /tmp -perm 755
find /tmp -perm +222 只要有一类用户匹配写权限就可以
find /tmp -perm -222 必须所有类别用户都满足写权限```
9)、-nouser and -nogroup
find / -nogroup -a -nouser查找既没有属主也没有属组的文件

你可能感兴趣的:(find命令)