如何熟悉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 '*\*' 
没有评论

发表回复

cmd shell
如何忽略PowerShell错误邮件地址?

1 前言 一个问题,一篇文章,一出故事。 笔者使用PowerShell发送邮件时,由于收件人列表包含 …

Linux基础
如何解决KDC不支持加密类型问题?

1 前言 一个问题,一篇文章,一出故事。 笔者最近发现生产环境的sftp域用户登录异常,查看sssd …

Linux基础
如何允许应用倾听低于1000的系统端口?

1 前言 一个问题,一篇文章,一出故事。 笔者集群运行logstash发现它希望在514端口倾听,但 …