【问题标题】:Locate files older than 7 days and contain the word "t" in the third char of the file name查找超过 7 天的文件并在文件名的第三个字符中包含单词“t”
【发布时间】:2020-04-04 13:35:51
【问题描述】:

我试图弄清楚如何找到所有超过 7 天且包含字母“t”作为(文件名的)第三个字符的文件。

我只知道如何找到超过 7 天的文件:

find /home -mtime +7 -print

【问题讨论】:

  • contain the word "T" on their third char (of the file name) - 你的意思是文件名的第三个字母应该是字母 T?或者文件应该有一个字母T作为其内容的第三个字节?
  • 我的意思是文件名的第三个字母是字符“t”

标签: linux shell find command


【解决方案1】:

您需要以这种方式使用正则表达式专门化您的查找:

find /home -mtime +7 -regextype posix-extended -regex '^.*\/.{2}T.*' -print

命令说明: 您添加一个正则表达式,过滤“/”字符之前和“/”字符之后的第一个 N 字符的所有查找结果,第三个位置是字符“T”。您需要正则表达式的第一部分 (^.*\/),因为 find 返回带有完整路径的结果,因此格式为 "./dir/dir1/filename.extension"。常规 espression 的最后一部分是过滤所有带有扩展名的文件。

注解:你可以用你想要的字符替换“T”。

【讨论】:

    【解决方案2】:

    要限制在第三个位置带有“t”的文件名,例如“25t.txt”或“data-19.doc”,请添加以下子句:

    -name "??t*"
    

    到命令。 -name 只查看基本名称,即移除了路径。

    【讨论】:

      猜你喜欢
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      • 1970-01-01
      • 1970-01-01
      • 2013-04-26
      • 2020-01-07
      • 2020-06-25
      相关资源
      最近更新 更多