【问题标题】:Remove files created between certain time stamps.删除在特定时间戳之间创建的文件。
【发布时间】:2011-02-03 08:38:10
【问题描述】:

昨晚我的脚本有点疯狂,在凌晨 3:00 到 3:09 之间创建了一堆目录。有没有一种快速的班轮可以为我追捕这些并移除它们?

【问题讨论】:

    标签: linux time sorting debian rm


    【解决方案1】:

    只需使用查找

    find . -type d -newermt "2010-03-31 0300" -and \( -not -newermt "2010-03-31 0310" \) -exec rm -rf {} \;
    

    【讨论】:

    • 这将删除目录及其所有内容,而不仅仅是文件。
    【解决方案2】:

    如果可以搜索到要删除的第一个和最后一个(按时间顺序)目录,则可以使用 find:

    find . -newer first -not -newer last -type d
    

    如果输出适合你,就去删除

    find . -newer first -not -newer last -type d -print0 |  xargs -0 rmdir
    

    或带有明确的日期戳:

    find . -newermt "2010-03-31 0300" -not -newermt "2010-03-31 0310" -type d
    

    【讨论】:

    • 运行这个会给出标志 xargs: unmatched single quote;默认情况下,引号对 xargs 来说是特殊的,除非您使用 -0 选项
    【解决方案3】:

    如果您只在一个目录中工作并且ls -ltrog 输出的第 5 个字段是时间,您可以试试这个。

    ls -ltrog | awk '$5~/03:0[0-9]/{$1=$2=$3=$4=$5="";gsub("^ +",""); cmd="rm \047"$0"\047";system(cmd) }'
    

    【讨论】:

      猜你喜欢
      • 2011-05-18
      • 1970-01-01
      • 2019-10-26
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多