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

unix – find -exec cmd {} vs | xargs

发布时间:2020-12-15 16:52:40 所属栏目:安全 来源:网络整理
导读:哪一个是更有效的一个非常大的文件集,应该使用? find . -exec cmd {} + 要么 find . | xargs cmd (假设文件名中没有有趣的字符) 速度差异不大。 但你必须确保: 你的脚本不会假设没有 文件将没有空格,制表符等 文件名;第一个版本是 安全,第二个不是。 您
哪一个是更有效的一个非常大的文件集,应该使用?
find . -exec cmd {} +

要么

find . | xargs cmd

(假设文件名中没有有趣的字符)

速度差异不大。

但你必须确保:

>你的脚本不会假设没有
文件将没有空格,制表符等
文件名;第一个版本是
安全,第二个不是。
>您的脚本不会将以“ – ”开头的文件视为选项。

所以你的代码应该看起来像这样:

find . -exec cmd -option1 -option2 -- {} +

要么

find . -print0 | xargs -0 cmd -option1 -option2 --

第一个版本更短,更容易写,因为你可以忽略1,但是
第二个版本更加可移植和安全,因为“-exec cmd {}”是一个相对较新的选项在GNU findutils(自2005年以来,许多运行系统将没有它),它是buggy recently.也有很多人不知道这个“-exec cmd {}”,你可以从其他答案看到。

(编辑:李大同)

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

    推荐文章
      热点阅读