linux一切皆文件,因此文件查找还是比较重要的
linux下查找命令有两个
locate
find
locate
locate是对其生成的数据库进行遍历,生成数据框,updatadb
因此查找很快,但是只能对文件进行模糊匹配
locate -i
查找文件的时候不区分大小写,比如locate -i passwd
locate -n
只显示查找结果的前N行,比如locate -n passwd
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
查找既没有属主也没有属组的文件