代码之家  ›  专栏  ›  技术社区  ›  David Oneill

bash:根据文件日期戳删除

  •  11
  • David Oneill  · 技术社区  · 14 年前

    我有一个文件夹,里面有一堆文件。我需要删除7月1日之前创建的所有文件。如何在bash脚本中删除这些文件?

    2 回复  |  直到 10 年前
        1
  •  21
  •   bramp Madhur Ahuja    14 年前

    我认为下面应该做你想做的:

    touch -t 201007010000 dummyfile
    find /path/to/files -type f ! -newer dummyfile -delete
    

    第一行创建了一个文件,最后一次修改是在2010年7月1日。第二行查找/path/to/file中日期不超过dummyfile的所有文件,然后将其删除。

    如果您想再次检查它是否正常工作,请将 -delete 参数,它应该只列出要删除的文件。

        2
  •  8
  •   Eric Wendelin    14 年前

    这应该有效:

    find /file/path ! -newermt "Jul 01"
    

    要查找要删除的文件,删除文件的命令如下:

    find /file/path ! -newermt "Jul 01" -type f -print0 | xargs -0 rm