Shell 如何递归所有子目录,其中只有一个文件
我如何从一个目录中递归删除其所有子目录,其中只有一个文件,并且文件名包含关键字“DEL”,并且该文件是在2017年之前创建的?Shell 如何递归所有子目录,其中只有一个文件,shell,Shell,我如何从一个目录中递归删除其所有子目录,其中只有一个文件,并且文件名包含关键字“DEL”,并且该文件是在2017年之前创建的? 谢谢。这可能是不可能的,但您至少可以接近它: 其思想是使用find遍历所有目录。查看-type标志,以便find仅拾取目录 使用find的-exec选项,您可以传递一个程序的名称,该程序将检查这是否是要删除的目录。我不确定现在删除它是否安全(我想是的),或者它是否会打乱find(在这种情况下,您只需将目录的路径打印到stdout,以便调用find的脚本可以删除它),所以
谢谢。这可能是不可能的,但您至少可以接近它: 其思想是使用
find
遍历所有目录。查看-type
标志,以便find
仅拾取目录
使用find
的-exec
选项,您可以传递一个程序的名称,该程序将检查这是否是要删除的目录。我不确定现在删除它是否安全(我想是的),或者它是否会打乱find
(在这种情况下,您只需将目录的路径打印到stdout,以便调用find
的脚本可以删除它),所以这是您必须尝试的
棘手的部分是确定这是否是要删除的目录。查找目录中的文件数可以通过不同的方式完成,这取决于您使用的“检查程序”的编程语言
匹配文件名很简单
如果您使用的是Linux或Unix,则无法找到创建日期,因为它不存储在任何地方。您可以得到的最接近的是inode更改时间。如果您在Windows上,您可以找到创建日期