文件搜索命令find
# | # |
---|---|
命名名称 | find |
命名所在路径 | /bin/find |
执行权限 | 所有用户 |
语法 | find [搜索范围] [搜索条件] |
功能描述 | 文件搜索 |
范例 | |
根据文件名进行搜索 | |
find /etc -name init | 查找etc下文件名为init的文件 |
find /etc -name init | 查找etc下文件名包含init的文件 |
find /etc -name *init | 查找etc下以init结尾的文件 |
find /etc -name init* | 查找etc下以init开头的文件 |
find /etc -name init??? | 查找etc下以init开头且后面只有三个字符的文件名 |
find /tmp -iname init | 查找tmp目录下文件名为init的文件,注意不区分大小写 |
根据文件大小进行搜索 | |
find / -size +204800 | 查找根目录下文件大小大于100MB的文件, |
size的单位是数据块,一个数据库是512字节即0.5K,100MB = 102400KB=204800个数据块,+表示大于100MB,-表示小于100MB,不写表示等于100MB | |
根据文件所有者和所属组进行搜索 | |
find /home -user maple | 在home目录下查找所有者为maple的文件 |
find /home -group maples | 在home目录下查找所属组为maples的文件 |
根据时间进行搜索 | +表示大于时间 -表示小于时间 |
find /tmp -cmin -30 | 查找tmp目录下在30分钟内被修改过文件属性的文件 |
find /tmp -amin -30 | 在tmp目录下查找访问时间小于30分钟的文件 |
find /tmp -mmin -30 | 在tmp目录下查找文件内容修改时间小于30分钟的文件 |
连接查询搜索 | |
find /etc -size +163840 -a -size -204800 | 查找etc目录下文件大小在80M到100MB之间的文件 |
find /etc -size +163840 -o -size -204800 | 查找etc目录下文件大小大于80MB或者小于100MB的文件 |
根据文件类型查找搜索 | f表示文件,d表示目录,l表示软链接文件 |
find /tmp -type d | 查找tmp目录下的目录 |
find /tmp -type f | 查找tmp目录下的文件 |
find /tmp -type l | 查找tmp目录下的软链接文件 |
根据i节点搜索 | |
find /tmp -inum 522247 | 查找tmp目录下i节点为522247的文件 |
搜索结果处理 | -exec后面跟的是执行操作,-ok会对每次查询进行询问 |
find /tmp -type d -exec ls -lh {} \; | 对tmp目录下的目录执行ls -lh 命令 |
find /tmp -type d -ok ls -lh {} \; | 对tmp目录下的目录执行ls -lh 命令,会对满足条件的每个文件进行询问 |
*注意:
1、目录和文件结构一定要规划合理,并不推荐使用find搜索命令,因为对会降低服务器的性能
2、搜索的范围越小越好
3、不要在服务器高峰期的时候执行文件搜索命令