#find命令大全
find
find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。
按文件名查询:使用参数 -name
命令:find + 路径 + -name +“文件名”
示例:find /home -name “a.txt”
按文件大小查询:使用参数 -size
命令:find + 路径 + -size + 范围
范围
Ø 大于:+表示 – +100k
Ø 小于:-表示 – -100k
Ø 等于: 不需要添加符号 – 100k
大小
Ø M 必须大写(10M)
Ø k 必须小写(20k)
例子: 查询目录为家目录
等于100k的文件: find ~/ -size 100k
大于100k的文件: find ~/ -size +100k
大于50k, 小于100k的文件: find ~/ -size +50k -size -100k
按文件类型查询:使用参数 -type
命令:find + 路径 + -type + 类型
类型
Ø 普通文件类型用 f 表示而不是-
Ø d -> 目录
Ø l -> 符号链接
Ø b -> 块设备文件
Ø c -> 字符设备文件
Ø s -> socket文件,网络套接字
Ø p -> 管道
查找指定目录下的普通文件: find /home -type f
查找根目录下所有的普通文件
deng@itcast:~$ find / -type f
查找根目录中所有的目录稳步
deng@itcast:~$ find / -type d
查找根目录所有的字符设备
deng@itcast:~$ find / -type c
查找根目录下所有的块设备
deng@itcast:~$ find / -type b
查找根目录下所有的符号链接
deng@itcast:~$ find / -type l
查找根目录下所有的套接字
deng@itcast:~$ find / -type s
查找根目录下所有的管道
deng@itcast:~$ find / -type p
示例:
find /etc -name grub.conf 查找/etc目录下的grub.conf文件
find / -name “.conf" 查找/下所有.conf文件
find / -iname grub.conf 查找/目录下的grub.conf文件,忽略大小写
find / -maxdepth 2 -name grub.conf 可以使用-maxdepath参数来控制查找的层次,就是说只查当前目录和子目录,最多查2级目录
find / -mindepth 2 -name grub.conf 最少查二级目录
find /etc -type d 查找/etc/下所有的目录
find /etc -type f 查找/etc/下的所有普通文件
find /etc -type l -name .conf 查找/etc/下软链接文件是.conf结尾的文件
find /etc -type s 查找/etc/下所有socket文件
find /etc -type c 查找/etc/下的所有字符设备文件
find /etc -type p 查找/etc/下所有管道文件
find /etc -user root 查找/etc/所属用户是root的文件
find /etc -group root 查找/etc/所属用户组是root的文件
find /etc -uid 500 查找/etc/下uid是500的文件,和-user类似
find /etc -gid 500 查找/etc/下gid是500的文件,和-group类似
find /etc -nouser 查找没有所属用户的文件
find /etc -nogroup 查找没有所属用户组的文件
find /etc -perm 777 -type d 查找/etc/下权限为777的目录
find . -perm 111 查找权限是111的文件
find . -size +10M 查找当前目录下大于10M的文件,单位可以有K,M,G,b等
find / -size -2M 查找根目录下少于2M的文件
find / -mtime 1 查找根目录下1天以前修改的所有文件
find / -mtime +2 查找根目录下2天以前修改的所有文件
find / -mtime -3 查找根目录下最近3天内修改的所有文件
find / -atime 1 查找根目录下1天以前访问或读过的所有文件
find / -atime -1 查找根目录下最近1天内读过或访问的文件
find / -ctime -3 查找根目录下最近3天内状态发生改变的文件
find / -cmin -3 查找根目录下最近3分钟内状态发生改变的文件
find / -empty 查找根目录下所有空白文件或者空目录
find / -false 查找根目录下总是错误的文件
高级用法:
find / -false -exec ls -l {} ; 查找根目录下总是错误的文件并且用ls -l查看
find . -name ".conf" -exec rm -rf {} ;
find . -name ".conf” | xargs rm -rf 删除当前目录下所有以 .conf 结尾的文件
deng@itcast:~$ find cmd/ -name “txt” -ok rm -rf {} ; 删除之前做确认
< rm … cmd/txt > ? y