命令:
find / -type f -size +10M
10M即文件大于该大小会被找到,一般用于查找网站生成大的文件
格式:find [查询的路径] [匹配模式] [匹配规则]
匹配模式:#-name : 按名字查找
正则匹配 :* 匹配任意数量的任意字符(匹配零个或多个任意字符)
? 匹配任意一个字符
eg: find /etc/ -name *eth*
#-type : 按文件类型查找
常见文件类型:f 普通文件
d 普通文件夹
l 链接文件
b 块设备文件
c 字符设备文件
s socket文件
p 管道文件
eg:查看/etc/目录下的普通文件
find /etc/ -type f
#-perm : 按文件权限查询
常见文件权限: 755 : 文件夹的默认权限
644 : 文件的默认权限
find /etc/ -perm 777
#-user : 按照文件的属主查询
查询属主为test的文件
find /etc/ -user test
#-nouser :查询没有属主的文件
# -group :按照文件属组查询
#-nogroup :查询没有属组文件
#知识储备:
删除用户:userdel
删除用户组:groupdel
#-mtime :按照文件修改时间查找
+ :表示几天之前修改的文件(以天为单位)
- :表示几天之内修改的文件
查找3天前修改的普通文件
find /etc/ -mtime +3 -type f
#-ctime :按照文件创建时间查找
#-atime :按照文件访问时间查找
#-size :按照文件大小查找
+ :超过n的文件(以天为单位)
- :小于n的文件
查找/etc/目录中大于1M的文件
find /etc/ -size +1M
选项:
-a(默认) : 并且
-o :或者
-exec(xargs) : 处理匹配之后的内容
#知识储备:
stat + 文件名称 : 查看文件的各种时间
[root@localhost ~]# stat a.txt
File: ‘a.txt’
Size: 816 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 134391259 Links: 1
Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2021-09-27 16:57:59.607826732 +0800
Modify: 2021-09-27 16:56:50.747828598 +0800
Change: 2021-09-27 16:56:50.747828598 +0800
Birth: -
案例1:查询/tmp目录中在3天以内创建的文件,并删除
方式一:find /tmp/ -ctime -3 -type f -exec rm -rf {} \;
-exec : 处理查询之后的内容
{} : 代表的是查询到的内容、
\; : 固定搭配
方式二:find /tmp/ -ctime -3 -type f | xargs -I {} rm -rf {}
xargs :将所有的内容格式化成一行
案例2:要求将所有3天前创建的普通文件加上.bak后缀
find /tmp/ -ctime +3 -type f -exec mv {} {}.bak ;
find /tmp/ -ctime +3 -type f | xargs -I {} mv {} {}.bak