find命令是一个查找文件工具,方便我们查找Linux中的目录或文件
1. 基本语法
# path为查找目录,option为接的选项,expresstion为查找出来后续的操作
find path -option [expresstion]
2. 按名称查找
# 查找根目录下命名含有passwd的文件
find / -name passwd
# 查找根目录下以.c结尾的文件
find / -name *.c
3. 按用户名和组查找
# 查找根目录下指定属主的目录或文件
find / -user 用户名
# 查找根目录下指定属组的目录或文件
find / -group 组名
4. 按绝对路径深度查找
# 查找根目录下绝对路径最小深度为1且命名含有passwd的文件
find / -mindepth 1 -name passwd
# 查找/etc/下绝对路径最大深度为2且以.conf结尾的文件
find / -maxdepth 2 -name *.conf
5. 按文件修改时间查找
# 查找 /etc/ 下n分钟之内被修改的文件
find /etc/ -cmin n
# 查找 /etc/ 下n天之内被修改的文件
find /etc/ -ctime n
# 查找 /var/log/ 目录中更改时间在 n 天以前的普通文件,并在删除之前询问它们
find /var/log -type f -mtime +n -ok rm {} \;
6. 按文件大小查找(find path -size [+|-]单位,常用单位:k,M,G)
# 查找/var/log/下大于100M的文件并且列出大小
find /var/log/ -size +1G -exec du -sh {} \;
# 查找/var/log/下小于10M大于5M的文件
find /var/log/ -size -10M -size +5M
# # 查找/var/log/下大小为 0 k的文件
find /var/log/ -size 0
7. 按并且,或者,非关系进行查找
# -a:并且关系
# 查找根目录下属主为root且属组为apache的文件
find / -user root -a -group apache
# 不加 -a 默认为并且
find / -user root -group apache
# -o:或者关系
# 查找属主为apache或者属组为apache的文件
find / -user apache -o -group apache
# -not:非关系,表示取反
# 查找/var目录下属主不是root的文件
find /var -not -user root
8.查找文件并且删除
find /path -name file -exec rm {} \;