linux命令之find

常见用法

  • 按名称或正则查找文件

find . -name test.txt 
  • 查找不同类型的文件

find . -type d -name "yang*"
  • 按指定时间戳查找

atime:访问时间戳,最后一次读取文件的时间

ctime: 上次修改元数据的时间戳,如 所有权、位置、文件类型和权限设置

mtime: 文件内容上次被修改的时间

+ 表示“大于”,- 表示“小于”。所以我们可以搜索 ctime 在 5~10 天前的文件:

find . -type f -ctime +5 -ctime -10
  • 按大小查找文件

+ 表示“大于”,- 表示“小于”。

例如,要查找大小为 10 MB ~ 1 GB 的文件:

find . -type f -size +10M -size -1G
  • 按权限查找文件

find . -type f -perm 777
  • 按所有权查找文件

find -type f -user wanghaokun
  • 在找到文件后执行命令

find . -type f -atime +365 -exec rm -rf {} \;

上述命令在 -exec 选项后是 rm -rf,其用于删除文件。{} 是用于查找结果的占位符。

注意:占位符 {} 非常重要,尤其是在您想删除文件时。因为,如果您不使用它,该命令将对所有文件执行(而不是您刚刚通过 find 命令找到的文件)。

-exec 选项后面的命令必须以分号;)结束。众所周知,转义字符用于去除单个字符的特殊含义。在 Linux 中,反斜杠 \ 用作转义字符。所以我们将它用于分号字符。

 

面试题

  • 删除当前目录下最后一次访问时间超过一年的日志文件
find . -type f -atime +365 -exec rm -rf {} \; 

 

参考地址:https://mp.weixin.qq.com/s/zSjyZyFaBkS38henxVf9zg

 

posted on 2022-06-17 14:05  爱吃柠檬不加糖  阅读(88)  评论(0编辑  收藏  举报

导航