:查找符合指定的inode编号的文件或目录;
- -ipath<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;
- -iregex<范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;
- -links<连接数目>:查找符合指定的硬连接数目的文件或目录;
- -iname<范本样式>:指定字符串作为寻找符号连接的范本样式;
- -ls:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
- -maxdepth<目录层级>:设置最大目录层级;
- -mindepth<目录层级>:设置最小目录层级;
- -mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
- -mount:此参数的效果和指定“-xdev”相同;
- -mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
- -name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
- -newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
- -nogroup:找出不属于本地主机群组识别码的文件或目录;
- -noleaf:不去考虑目录至少需拥有两个硬连接存在;
- -nouser:找出不属于本地主机用户识别码的文件或目录;
- -ok<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;
- -path<范本样式>:指定字符串作为寻找目录的范本样式;
- -perm<权限数值>:查找符合指定的权限数值的文件或目录;
- -print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
- -print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
- -printf<输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;
- -prune:不寻找字符串作为寻找文件或目录的范本样式;
- -regex<范本样式>:指定字符串作为寻找文件或目录的范本样式;
- -size<文件大小>:查找符合指定的文件大小的文件;
- -true:将find指令的回传值皆设为True;
- -type<文件类型>:只寻找符合指定的文件类型的文件;
- -uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
- -used<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;
- -user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
- -version或——version:显示版本信息;
- -xdev:将范围局限在先行的文件系统中;
- -xtype<文件类型>:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。
### 几个容易被搞混的参数
- -amin n 查找系统中最后n分钟访问的文件(如:cat)
- -atime n 查找系统中最后`n*24`小时访问的文件(如:cat)
- -cmin n 查找系统中最后n分钟被改变文件状态的文件(如:修改文件的权限)
- -ctime n 查找系统中最后`n*24`小时被改变文件状态的文件(如:修改文件的权限)
- -mmin n 查找系统中最后n分钟被改变文件数据的文件(如:修改文件的内容)
- -mtime n 查找系统中最后`n*24`小时被改变文件数据的文件(如:修改文件的内容)
> n有正负之分,n表示文件更改时间距离为n天(分钟), -n表示文件更改时间距离在n天(分钟)以内,+n表示文件更改时间距离在n天(分钟)以前。
### 以`mtime`为例子
- -mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件。
- -mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。
- -mtime +1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件
- -mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件
> 为什么`-mtime +1` 表示文件修改时间为大于1天的文件,即距离当前时间48小时之外的文件,而不是24小时之外的呢?
> 因为n值只能是整数,即比1大的最近的整数是2,所有`-mtime +1`不是比当前时间大于1天(24小时),而是比当前时间大于2天(48小时)。
### 查找系统中24小时以内被访问过的文件
```
> find / -atime -1
```
### 查找系统中24小时以内被修改过内容的文件
```
> find / -mtime -1
```
### 查找系统中48小时之前被修改过内容的文件
```
> find / -mtime +1
```
### 查找系统中所有的`.log`结尾的文件
```
> find / -name *.log
```
### 查找系统中文件大于100M的文件
```
> find / -size +100M
```
- b —— 块(512字节)
- c —— 字节
- w —— 字(2字节)
- k —— 千字节
- M —— 兆字节
- G —— 吉字节
### 查找系统中文件大于100M小于500M的文件
```
> find / -type f -size +100M -size -500M
```
### 查找系统中文件大于500M的文件,并删除
```
> find / -type f -size +500M -delete
或
> find / -type f -size +500M -exec rm -rf {} \;
或
> find / -type f -size +500M | xargs rm
```
### 查找系统中权限为777的文件
```
> find / -perm 777
```
### 查找系统中的空文件
```
> find / -empty -type f
```
原文链接:https://rumenz.com/rumenbiji/linux-find.html
微信公众号:入门小站Linux之find命令
原文:https://blog.51cto.com/u_12214037/2984969