2017-04-04 147 views
2

我有这个独特的要求,找到2年前的旧文件并删除它们。但不仅仅是文件以及相应的空目录。我已经写了大部分逻辑,但是只有当我从目录中删除特定文件时,如何删除相应的目录。当我删除特定的文件时,ctime/mtime也会相应地得到更新。我如何定位那些相应的旧目录并删除它们? 任何指针都会有帮助。 在此先感谢。bash删除旧文件

  • 联系
+0

您能向我们展示迄今为止的代码吗? 'rm -r mydir'删除目录和内容 –

回答

3

我会做这样的事情:

find /path/to/files* -mtime +730 -delete 

-mtime +730认为这是年龄超过730天文件。

请注意这种命令虽然,请务必事先写入find /path/to/files* -mtime +730并检查这些是您要删除的文件!

编辑: 现在你已经从目录中删除文件,-mtime +730将无法​​正常工作。 要删除您最近更改过的所有空目录:

find . -type d -mmin -60 -empty -delete 
+0

感谢您的回复。是的,这是有道理的,就像之前提到的,我到目前为止。仍然未决的部分是,如何在删除内部较旧的文件后,如何定位(删除)将为空的目录。 –

+0

当然,所以你想删除现在空的目录,检查我的编辑@SachinH –

+0

对不起,但你又错过了点。一旦删除旧文件,相应的空目录将不再是旧的,即将修改mtime和ctime。 –