1、locate --->文件查找事先生成的数据库,模糊查找,updatedb更新locate数据库
-i : 忽略文件名的大小写
-n : 只显示前n行 eg:locate -n 3 passwd
2、find ---->实时查找,精确匹配文件名
find [DIR ...] [CRIERIA] [ACTION...]
DIR:/root /home .. (默认当前目录)
ACTION;
-print (默认)
-ls
-ok COMMAND 交互式执行命令
-exec COMMAND 非交互式执行命令
xargs 从标准输出中执行和创建命令
eg;find /root -name "[[:alpha:]][[:digit:]]" -exec mv {} {} \; //{}代表前面查找的结果,后面必须用\;结尾
find /root -name "[[:alpha:]][[:digit:]]" | xargs chmod 755
CRIERIA:
-name :精确到指定的文件名
-iname: 根据文件名查找,但不区分大小写
-user :根据属主查找
-group:根据属组查找
-uid :根据uid查找
-gid :根据gid查找
在指定时间段里查找:
-atime: [+/-]N (access time) :+-表示---(+)----N---(-)----currentday
eg:find -atime -3 -exec ls -l {} \;
-mtime: (modification time)同上
-ctime (change time) 同上
-amin 以分种为单位,同上
-mmin
-cmin
-anewer a.txt 比a.txt更近的访问
eg: find -anewer sh01.sh -exec ls -l {} \;
-newer 相当于modification time
-cnewer 相当于change time
-type:按照类型查找
d(目录),l(链接文件),f(普通文件),s(套接文件),
b(块设备),c(字符设备),p(命令管道文件)
eg:find /var -type l -exec ls -l {} \;
-size: 按照大小查找
[+/-]N
-perm [+/-]mode 根据权限查找
mode 755
-222 每一类用户都要匹配
eg:find /tmp/myscrip -perm -001
/222 某一个用户只要有一类权限的即可
-nouser :没有用户
eg: find / -nouser 查看没有用户名的文件,一般这种文件有一定的危险性
-nogroup:没有组的
查找条件连接:
-a :&& 通常可以省略
eg: find -user root -type f -exec ls -dl {} \;
-o :||
eg:find -user named -o -type d -exec ls -ld {} \;
-not or ! :!
eg:find -not \( -type d -a -user root \) -exec ls -ld {} \;
-ls -l `find / -name passwd`
文件名通配:*任意一个字符,?单个字符,[]
eg: find /tmp -name a* //查找以a开头的文件