如何使用"find"按正则表达式搜索文件名 [英] How to search filenames by regex with "find"

查看:21
本文介绍了如何使用"find"按正则表达式搜索文件名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试查找日期为3天或更长时间的所有文件。

find /home/test -name 'test.log.d{4}-d{2}-d{2}.zip' -mtime 3

它没有列出任何内容。它有什么问题?

推荐答案

find /home/test -regextype posix-extended -regex '^.*test.log.[0-9]{4}-[0-9]{2}-[0-9]{2}.zip' -mtime +3
  1. -name使用球形表达式, 也就是通配符。你想要的是 -regex
  2. 要按照您的预期使用间隔,您 需要告诉find使用扩展 正则表达式通过 -regextype posix-extended标志
  3. 您需要跳出经期 因为在正则表达式中,句点具有 任何单个词的特殊含义 字符。你想要的是一个 文字句点由.
  4. 表示
  5. 仅匹配符合以下条件的文件 大于3天,您需要在您的号码前加上+作为 在-mtime +3中。

概念证明

$ find . -regextype posix-extended -regex '^.*test.log.[0-9]{4}-[0-9]{2}-[0-9]{2}.zip'
./test.log.1234-12-12.zip

这篇关于如何使用"find"按正则表达式搜索文件名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆