shell – 哪个更快,’find -exec’或’find | xargs -0’?

前端之家收集整理的这篇文章主要介绍了shell – 哪个更快,’find -exec’或’find | xargs -0’?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的Web应用程序中,我使用 PHP脚本呈现页面,然后从它们生成静态HTML文件.静态HTML将提供给用户以加快性能. HTML文件最终变得陈旧,需要删除.

我正在讨论两种编写驱逐脚本的方法.

第一种是使用单个find命令,比如

find /var/www/cache -type f -mmin +10 -exec rm \{} \;

第二种形式是通过xargs管道,类似于

find /var/www/cache -type f -mmin +10 -print0 | xargs -0 rm

第一个表单为它找到的每个文件调用rm,而第二个表单只将所有文件名发送到单个rm(但文件列表可能很长).

哪种形式会更快?

在我的例子中,缓存目录在几个Web服务器之间共享,所以这一切都是通过NFS完成的,如果这个问题很重要的话.

我希望xargs版本稍快一些,因为你没有为每个文件生成一个进程.但是,如果实践中存在很大差异,我会感到惊讶.如果你担心xargs发送到rm的每个调用的长列表,你可以使用-l和xargs来限制它将使用的标记数.但是,xargs知道最长的cmdline长度,并且不会超出这个范围.
原文链接:https://www.f2er.com/bash/384748.html

猜你在找的Bash相关文章