linux find命令
在linux系统中,经常使用find命令来查找文件,本文主要列举了find命令的常用用法。
命令格式:find [目录] [查找规则] [查找完后执行的action]
(1)根据文件名查找
-name //根据文件名查找(精确查找)
-iname //根据文件名查找,但是不区分大小写
通配符:
*: 通配任意的字符
?: 通配任意的单个字符
[]: 通配括号里面的任意一个字符
#find /etc /tmp /root -name passwd #find /etc -name passwd
(2)根据文件所属用户和组来查找
-user //根据属主来查找文件
-group //根据属组来查找文件
(3)根据 uid 和 gid 来查找
#find /tmp -uid 500 //查找uid是500 的文件 #find /tmp -gid 1000 //查找gid是1000的文件
(4)-a 、 -o、–not
-a //连接两个不同的条件(两个条件必须同时满足)
-o //连接两个不同的条件(两个条件满足其一即可)
-not //对条件取反的
#find /tmp -name "*.sh" -a -user root #find /tmp -not -user root
(5)根据文件时间戳的相关属性查找
-atime //最近一次访问时间(天)
-mtime //最近一次内容修改时间(天)
-ctime //最近一次属性修改时间(天)
-amin //最近一次访问时间(分钟)
-mmin //最近一次内容修改时间(分钟)
-cmin //最近一次属性修改时间(分钟)
#find /tmp –atime +5 //表示查找在五天内没有访问过的文件 #find /tmp -atime -5 //表示查找在五天内访问过的文件
(6)根据文件类型来查找
-type
f //普通文件
d //目录文件
l //链接文件
b //块设备文件
c //字符设备文件
p //管道文件
s //socket文件
#find /tmp -type s
(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的文件 #find /tmp -perm +222 //表示只要有一类用户(属主,属组,其他)的匹配写权限就行 #find /tmp -perm -222 //表示必须所有类别用户都满足有写权限
(9)-nouser、-nogroup
#find / -nogroup –a –nouser //在整个系统中查找既没有属主又没有属组的文件(这样的文件通常是很危险的)
(10)查找完执行的action
-print //默认情况下的动作
-ls //查找到后用ls 显示出来
-ok [command] //查找后执行命令的时候询问用户是否要执行
-exec [command] //查找后执行命令的时候不询问用户,直接执行
#find /tmp -name "*.sh" -exex chmod u+x {} \; #find /tmp -name "*.sh" -exex cp {} {}.old \; #find /tmp -atime +30 –exec rm –rf {} \; #删除查找到的超过30天没有访问过文件
注:{}作用:替代查找到的文件
本文内容主要来自于下文:
http://blog.chinaunix.net/uid-24648486-id-2998767