删除超过x年或天数的文件

时间:2018-11-11 10:44:50

标签: shell unix xargs

我巨大的上载文件夹,并尝试删除旧文件,例如。超过3年的文件或在特定日期之前添加的文件,但是由于某种原因最终会删除新文件和旧文件。

这是我到目前为止尝试过的命令

命令1

 find /home/user/uploads -maxdepth 1 -type f ! -newermt "2018-10-14 00:00:00" -exec rm -v {} \;

此命令删除所有忽略with的内容! -newermt或只是-newermt

命令2

find /home/user/uploads -maxdepth 1 -mtime +1095 -type f -print -exec rm -i  {} \;

没有返回结果

命令3

find /home/user/uploads -type f ! -newermt "2018-10-14 00:00:00" | xargs rm 

这将返回错误“ xargs:默认情况下,不匹配的单引号对xargs而言是特殊的,除非您使用-o选项”

我无法弄清楚命令到底出了什么问题。我正在CentOS系统上运行。

1 个答案:

答案 0 :(得分:0)

因此,在使用命令一段时间后,这才是有效的命令。

find . -maxdepth 1 -type f ! -newermt "2018-10-16" -exec rm -v {} \;

这些标志还有助于防止遇到这种情况。

-maxdepth 1 

仅表示该文件夹中的文件

-newermt 

用于该日期或之后修改的文件。

! -newermt 

用于在上述日期之前删除文件。

我还添加了-v标志,因此我将看到文件的输出已删除。

感谢所有帮助,这节省了我很多时间。