【问题标题】:Removing all subfolders older than 3 days inside a folder, but keep the main folder删除文件夹内超过 3 天的所有子文件夹,但保留主文件夹
【发布时间】:2014-06-29 16:54:50
【问题描述】:

我有一个这样的目录结构:

news_images 文件夹 -> 具有当前日期的子文件夹,例如。 20140626 -> 文件

我想删除所有在 news_images 目录中超过 3 天的文件的子文件夹。

这只会删除 news_images 目录中的文件,但不会触及子文件夹。

find news_images -mtime +3 -exec rm {} \;

【问题讨论】:

  • 如果你有一个10天内没有修改过的文件夹,但里面有一个昨天修改过的文件怎么办?
  • 另外,每当您删除文件时,都会将文件夹的修改时间设置为现在。所以从文件夹中删除旧文件后,文件夹本身不会看起来很旧。

标签: bash shell find exec rm


【解决方案1】:

您是否尝试仅查找 news_images 的子目录(然后递归删除它们)? 类似的东西(未经测试,但我认为它应该可以工作):

find news_images -mindepth 1 -maxdepth 1 -mtime +3 -type d -exec rm -r {} +

【讨论】:

    【解决方案2】:

    没有选项的 rm 不能删除目录。试试选项 -r。

    【讨论】:

      猜你喜欢
      • 2017-07-09
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 2020-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多