命令所在路径/bin/find
描述:
find命令用来在目录结构中查找文件所在位置,并执行相应的操作。
语法:
find 搜索路径 搜索选项 执行动作
参数说明:
搜索路径:指明从哪里开始查找,find会递归地搜索其包含的所有子目录;
搜索选项:指明查找内容;
执行动作:指明一量找到所要的文件如何处理。
常用的搜索选项:
- 按文件名
-name 按照文件名查找,支持通配符 "*" 和 "?"
-iname 按照文件名查找,文件名不区分大小写
eg:
// 搜索/etc 下文件名为init的文件
find /etc -name init
- 按文件属性(通过ls可以看到的文件属性)
-amin 访问时间 access
-cmin 文件属性 change
-mmin 文件内容 modify
eg.
// 在/etc下查找 5分钟内被修改文件属性的文件和目录
find /etc -cmin -5
- 按文件类型
-type filetype
filetype可以是:f(普通文件) d(目录文件) l(软链接文件) b(块设备文件) p(管道文件) c(字符设备文件)
- 按文件大小(单位为数据块)
//查找文件长度为n块的文件
// +n(大于) -n(小于) n(等于)
-size n
eg.
//查找根目录下大于100MB的文件
find / -size +204800
/**
1数据块 = 512字节 = 0.5K
1K = 2数据块
100MB = 102400KB = 204800数据块
*/
- 根据i节点
-inum
eg.
find . -inum 31531
// 删除当前目录下i节点为31531的文件
find . -inum 31531 -exec rm {} \;
//当使用文件名删除不了文件时,可使用此方法
//可通过i节点的方式查找该文件的硬链接
/**
ls -i 查看文件的i节点
*/
- 按访问天数
-atime n 查找n天前访问过的文件
-mtime n 查找n天前修改过的文件
//n表示正好第n天
//+n表示n天之前
//-n表示n天之后
-user username 按所有者查找
-group groupname 按文件所属组查找
常用的执行动作:
//对找到的文件执行command命令
-exec command {} \;
//和-exec命令作用相同,但在执行命令前要求确认
-ok command {} \;
eg.
// 在/etc下查找init文件并显示其详细信息
find /etc -name init -exec ls -l {} \;
find /etc -name init* -a -type f -exec ls -l {} \;
-a 两个条件同时满足
-o 两个条件满足任意一个即可
eg.
//在/etc下查找大于80MB小于100MB的文件
find /etc -size +163840 -a -size -204800