如何在

时间:2017-08-24 04:53:55

标签: shell

如何从目录中递归删除其内部只有一个文件的所有子目录,文件的名称包含关键字“DEL”,文件是在2017年之前创建的? 感谢。

1 个答案:

答案 0 :(得分:0)

这可能是不可能的,但你至少可以接近它:

我们的想法是使用find遍历所有目录。查看-type标志,以便find仅选择目录。

使用-exec find选项,您可以传递一个程序的名称,该程序会检查这是否是要删除的目录。我不确定现在删除它是否安全(我认为是这样),或者它是否会让我感到不安find(在这种情况下你只需将目录的路径打印到stdout,这样就可以了可以通过调用find)的脚本删除,所以这是你必须尝试的。

棘手的部分是找出这是否是要删除的目录。查找目录中的文件数可以通过不同的方式完成,这取决于您使用哪种编程语言进行此“检查程序”。

匹配文件名很简单。

如果你在Linux或Unix上,找不到创建日期是不行的,因为它没有存储在任何地方。您可以获得的最接近的是 inode更改时间。如果您使用的是Windows,则可以找到创建日期。