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