加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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长度,并且不会超出这个范围.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读