unix中长时间运行'find'命令的替代方法

unix中长时间运行'find'命令的替代方法,unix,optimization,find,delete-file,locate,Unix,Optimization,Find,Delete File,Locate,我想删除超过7天的文件,我正在使用以下命令: find /directory -mtime +7 -exec rm -f {} \; 它工作得很好,只是时间太长了。是否有任何其他方法可以删除超过7天的文件,例如不使用查找?使用“-exec rm”会降低速度。如果您的find具有-delete选项,请尝试使用它,如下所示: find /directory -type f -mtime +7 -delete 如果您的查找< /COD>没有-DELATE选项,那么考虑使用GNU查找(它可能已经在您

我想删除超过7天的文件,我正在使用以下命令:

find /directory -mtime +7 -exec rm -f {} \;
它工作得很好,只是时间太长了。是否有任何其他方法可以删除超过7天的文件,例如不使用
查找

使用“-exec rm”会降低速度。如果您的
find
具有-delete选项,请尝试使用它,如下所示:

find /directory -type f -mtime +7 -delete
如果您的<代码>查找< /COD>没有-DELATE选项,那么考虑使用GNU查找(它可能已经在您的系统上可用为<代码> gSudio>代码>)。
还有其他可能性,例如使用
xargs
。有关进一步的讨论和一些其他选项,请参见。

更改最终的
表示加号
+

$ find /directory -type f -mtime +7 -exec rm -f {} \+
或者使用
xargs
命令:

$ find /directory -type f -mtime +7 | xargs rm

两者都将至少快3倍

您可能应该将搜索限制为文件(
-type f
)。这可能也会使事情加快一点。如果您可以为
find
命令提供要查找的特定位置的列表,例如
find/directory/a/directory/b-type f…
,这可能也有助于加快速度。此外,您没有提到您正在使用的操作系统。如果您确定正在使用的
find
,也可能会有所帮助。(您是否尝试过GNU find
?)