文件查找
locate: 依赖数据库。非实时查找,结果非精确,查找速度快,模糊查找
find:实时查找,速度慢,精确查找
find [options] [查找路径] [查找条件][处理动作]
查找路径:默认当前路径
查找条件:默认查找指定路径下的所有文件
处理动作:默认显示
查找条件:
-name:"文件名称":区分大小写。支持使用globbing
* ? [] [^]
-iname:"文件名":不区分大小写
-user UserName:根据属主查找
-group GroupName:跟住属组查找
-uid UID:根据uid查找
-gid GID:根据gid查找
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
组合条件:在要要查找的选项前面加
-a:与。同时满足,可省略
-o:或,一个满足
-not,!非。取反
非A,并且非B:非(A或B)
-not( -user kayshi -o iname ”*.txt“)
非A,或 非B:非(A且B)
-type:根据文件类型查找
f:普通文件
d:目录
b:块设备
c:字符设备
l:符号链接文件
p:命令管道
s:套接字
-size:根据文件大小查找
-size [+|-] #unit
不加符号:表示在一个单位只内的
2M 是 1M 到 2M
2k 是 1k 到 2k
例如:-size +2M 大于2M
常用
-2M:小于1M的文件
在同一单位只能的
根据时间戳查找:
以天为单位(time):
-atime [+|-] -atime 2 距离现时刻2天的文件; -atime +2 距离现时刻大于2天的文件;-atime -2 距离现时刻小于2天的文件;
-mtime
-ctime
以分钟为单位(min)
-amin [+|-]#
-mmin
-cmin
根据权限查找:
-perm [+|-] MODE
MODE:精确匹配
+MODE:任何一类的任何一位权限匹配:常用于查找某类用户的某特定权限是否存在
-MODE:每类用户指定要检查的权限都匹配
文件权限:644
-perm 600 不符合
-perm +222 符合
-perm -444 符合
练习
1.查找/var目录中属主为root且属组为mail的文件
2.查找/usr目录下不属于root、bin或hadoop的所有文件
3.查找/etc目录中最近一周内其内容修改过的,且不属于root或hadooop的文件
4.查找当前系统上没有属组或属组,且最近一个月内被访问过的文件
5.查找早/etc/目录下大于1M且类型为普通文件的所有文件
6.查找/etc/目录所有用户都没有写权限的文件
7.查找/etc/目录下至少一类没有写权限的文件
8.查找/etc/init.d目录下,所有用户都有执行权限其其他用户有写权限的文件
1.find /var/ -user root -group mail
2.find /usr/ -not -user root -not -user bin -not -user hadoop
3.find /etc -mtime -7 -not -user root -not -user hadoop
4.find / \(-nouser -o -nogroup\) -atime -30
5.find /etc/ -type f -size +1M
6.find /etc/ -not -perm +222
7.find /etc/ -perm -222
8.find /etc/init.d/ -perm -111 -perm -002
find /etc/init.d/ -perm -113
处理动作:
-print:默认,打印在标准输出上
-ls:以长格式输出各文件信息
-exec COMMAND {} \; :对查找到的文件指定的命令
-ok COMMAND {} \; :交互式
find把查找到的所有文件一次性地传递给-exec执行
find |xargs COMMAND