find命令

命令所在路径/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

你可能感兴趣的:(find命令)