如何熟悉find的使用?

Linux基础

1 前言

一个问题,一篇文章,一出故事。
笔者认为整理才能节省工作时间,因为没有人能记住所有的命令。

2 最佳实践

2.1 根据名称查找

2.1.1 单个文件名称

find . -name '*.php'

2.1.2 多个文件名称

find /tmp -type f \( -name \*.py -o  -name \*.csv -o -name \*.json -o -name \*.R \)

注:以上文件名称使用“-o”选项表示或关系

2.1.2 排除隐藏文件

find . ! -name ".*"

2.2 根据时间查找

2.2.1 根据分钟数查找编辑文件

2.2.1.1 查找30分钟内编辑过的文件

touch /tmp/test
cd /tmp
find . -mmin -30

2.2.1.1 查找30分钟前编辑过的文件

find . -mmin +30

2.2.2 根据小时数查找编辑文件

2.2.2.1 查找24小时内编辑过的文件

touch /tmp/test
find /tmp/ -mtime 0

以上命令与以下命令等价,

touch /tmp/test
find /tmp/ -mtime -24

2.2.2.2 查找24小时前编辑过的文件

touch /tmp/test
find /tmp/ -mtime +24

2.2.2.3 查找并列出

find /tmp/ -mtime 0 -ls

2.3 根据文件类型查找

2.3.1 查找软连接

find /var -type l

2.3.2 查找文件

find /var -type f

2.3.3 查找目录

find /var -type d

2.4 查找并执行指令

2.4.1 查找并执行ls命令

find /tmp -type f -cmin -120 -exec ls -l {} \;

2.4.2 查找并执行rm命令(谨慎操作)

find /tmp -type f -cmin +120 -exec rm -f {} \;

2.5 查找包含特殊字符的对象

find /data -name '*\**' -o -name '*\\*' -o -name '*\:*' -o -name '*\?*' -o -name '*\"*' -o -name '*\*' 
没有评论

发表回复

Linux基础
如何使用OpenSSL创建自签名证书?

1 前言 一个问题,一篇文章,一出故事。 笔者由于配置Logstash与FileBeat的证书认证需 …

Linux基础
如何使用find命令调用命令别名?

1 前言 一个问题,一篇文章,一出故事。 笔者最近测试使用NextCloud的OCC命令有用到命令别 …

Linux基础
如何更换系统的根分区?

1 前言 一个问题,一篇文章,一出故事。 笔者最近发现新装的一个OS分区非常奇葩,但碍于是系统根分区 …