find在不指定查找目录的情况下是对整个系统进行遍历查找
使用格式:find [指定查找目录] [查找规则] [查找完后执行的action]
[指定查找目录]例如:
#find
/etc/tmp/root –name passwd
这里要注意的是目录之间要用空格分开
[查找规则]
(1)根据文件名查找
# -iname //根据文件名查找,但是不区分大小写
这里另外介绍下文件名通配的知识
*表示通配任意的字符
?表示通配任意的单个字符
[
]表示通配括号里面的任意一个字符
(2)根据文件所属用户和组来查找文件
# -user//根据属主来查找文件
# -group //根据属组来查找文件
(3)根据uid和gid来查找用户
#find /tmp -uid 500 //查找uid是500的文件
#find /tmp -gid 1000
//查找gid是1000的文件
(4)-a and -o and –not的使用
# -a连接两个不同的条件(两个条件必须同时满足)
#
-o连接两个不同的条件(两个条件满足其一即可)
#
-not对条件取反的
(5)根据文件时间戳的相关属性来查找文件
我们可以使用stat命令来查看一个文件的时间信息如下:
#-atime
#-mtime
#-ctime
#-amin
#-mmin
#-cmin
所以这里atime,mtime,ctime就是分别对应的“最近一次访问时间”“最近一次内容修改时间”“最近一次属性修改时间”,这里的atime的单位指的是“天”,amin的单位是分钟
#find /tmp –atime +5 //表示查找在五天内没有访问过的文件
#find /tmp -atime -5 //表示查找在五天内访问过的文件
(6)根据文件类型来查找文件,加参数-type
f //普通文件d //目录文件l //链接文件b //块设备文件
c //字符设备文件p //管道文件s //socket文件
(7)根据大小来查找文件-size
#find /tmp -size 2M //查找在/tmp目录下等于2M的文件
#find /tmp -size +2M //查找在/tmp目录下大于2M的文件
#find /tmp -size -2M //查找在/tmp目录下小于2M的文件
(8)根据文件权限查找文件-perm
#find /tmp -perm 755 //查找在/tmp目录下权限是755的文件
[查找完执行的action]
#-print默认情况下的动作
#-ls查找到后用ls显示出来
#-ok
[commend]查找后执行命令的时候询问用户是否要执行
#-exec
[commend]查找后执行命令的时候不询问用户直接执行;用{}来替代查找到的文件,\;表示使用-exec的结束符,是固定格式;使用-exec来出来查找的文件时,还可以通过管道送给xargs命令来解决,xargs在执行命令时,如果有对文件进行操作则用-i选项,{}也表示要操作的文件。
这里要注意{}的使用:替代查找到的文件
#find /tmp -atime +30 –exec
rm –rf {} \;#删除查找到的超过30天没有访问过文件
. -name "*2015*" -exec mv {} /root/demo \;
我们也可以使用xargs来对查找到的文件进一步操作
网友评论