shell – 哪个更快,’find -exec’或’find | xargs -0’?
发布时间:2020-12-16 01:11:39 所属栏目:安全 来源:网络整理
导读:在我的Web应用程序中,我使用 PHP脚本呈现页面,然后从它们生成静态HTML文件.静态HTML将提供给用户以加快性能. HTML文件最终变得陈旧,需要删除. 我正在讨论两种编写驱逐脚本的方法. 第一种是使用单个find命令,比如 find /var/www/cache -type f -mmin +10 -exe
在我的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长度,并且不会超出这个范围.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |