find 命令
find是Linux系统常用命令之一,可以方便快速的从系统中检索出文件
使用格式:find [指定查找目录] [查找规则] [查找完成后执行的action]
例如:
find /etc /tmp /root -name passwd
查找/etc /tmp /root 目录下名为passwd的文件
按文件名查找:
-name 根据文件名查找(精确查找)
-iname 根据文件名查找,但不区分大小写
支持通配符*表示通配任意的字符
? 表示通配单个字符
[] 表示通配括号里的任意一个字符
find /tmp -name "[ab].sh"根据文件所属用户组来查找文件
-user 根据属主来查找
-group 根据属组来查找
-nouser 没有属主
-nogroup 没有属组
根据uid和gid来查找
find /tmp -uid 500 //查找uid是500的文件 find /tmp -gid 1000 //查找gid是1000的文件-a -o -not的使用
-a连接两个不同的条件
find /tmp -name "*.sh" -a -user root-o则是or -not是对条件取反
根据时间戳来查找
find /tmp -atime +5 //查找五天内没有访问过的文件 find /tmp -atime -5 //查找五天内访问过的文件另外支持mtime内容修改时间 ctime属性修改时间,支持单位min/time 分钟/天
根据类型查找
-type
f // 普通文件
d //目录文件
l //链接文件
b //块设备文件
c //字符设备文件
p //管道文件
s //socket文件根据大小查找
-size
find /temp -size +2M支持+ - 大于/小于
根据文件权限查找
-perm
find /tmp -perm 755 //查找/tmp目录下权限是755的文件查找完成后执行的action
-print 默认情况下的动作
-ls 查找到后用ls 显示出来
-ok [commend] 查找后执行命令的时候询问用户是否要执行
-exec [commend] 查找后执行命令的时候不询问用户,直接执行
find /tmp -name "*.sh" -exec chmod u+x {} \; find /tmp -name "*.sh" -exec cp {} {}.old \; //复制tmp目录下的.sh文件重命名为xx.old find /tmp -atime +30 -exec rm -rf {} \; //删除查找到的30天以上没访问的文件注: {}表示查找到的文件
以上~
