find文件查找
#文件查找
例1:普通查询 根据文件名
find /etc -maxdepth 1 -type f -name "pa*"
命令 目录... 查找深度 类型 文件名称包含
# -type 文件类型:f表示文件,不指定类型的话,文件和目录都会查找
# -maxdepth 查找深度:目录层级的意思,不指定的话,就按照最大深度来查找
# "pa*":*表示匹配任意pa开头的内容,*还可以写在开头
# -name 文件名称,区分大小写;-iname 不区分大小写,i是ignore的简写,忽略的意思
例2:按照文件大小查找(单位k M G,k要小写,MG要大写,不带单位就按照b单位(1b=512B)来查找)
1.查找大于100M的文件
find / -type f -size +100M
proc是进程目录,有些进程运行起来之后能看到文件信息,程序运行结束之后,进程文件也消失了,所以看到proc的报错很正常,并且proc的权限很高,不是一般人可以访问的,所以经常会报权限不够等错误信息,所以以后看到proc的报错直接忽略即可。
确实大于100M。
2.查找小于2K的文件
find / -type f -size -2k
3.查找大于50M同时小于100M的文件
find / -type f -size +50M -and -size -100M
例3:根据修改时间查找文件
时间参数:atime mtime ctime amin mmin cmin (time是按照天来查找,min是按分钟查找)(a是最近访问时间,m是最近更改时间,c是最近改动时间)
#时间单位为天 -1表示1天以内,+1表示1天以前
find / -type f -mtime -1
#时间单位为分钟
find / -type f -mmin -20
#查找1天之前,10天之内的
find / -type f -mtime +1 -and -mtime -10
例4:取反 !
find /etc -maxdepth 1 -type f ! -name "pa*"
例5:根据用户来查看文件
#查找属于某一用户的所有目录和文件
find / -user 用户名
#根据用户组来查
find / -group 组名
例6:对找出的文件进行处理
格式:正常的find语句+操作exec
如:
find / -type f -size +10k -exec rm -rf {} \;
其中,{}表示我们找到的那些文件
\;的解释是:正常的exec语句最后要分号结尾,但是Linux中分号有特殊意义,比如一次性执行两个指令可以ls -lh;id 这样执行,所以要对;进行转义,意思是不要将;作为shell指令的分隔符,\就是转义符号。