【发布时间】:2012-03-10 07:57:23
【问题描述】:
请考虑这个sn-p:
tar -Oxvf archive.tgz | grep something
或者这个:
tar tf archive.tgz > /tmp/x && tar -Oxvf archive.tgz -T /tmp/x | grep something
相对于这个:
tar tf archive.tgz | xargs -I{} tar -Oxvf archive.tgz {} | grep something
前两个 sn-ps 非常快且相似,而第三个慢了约 40 倍(我猜这个索引是相对于存档内容的)。这是为什么呢?
【问题讨论】:
-
似乎在使用
-T开关时,tar在自己的规则下一次读取列表并提取文件(即它不像/tmp/x文件列表那样按顺序提取,但是为了它们被压缩),而当使用xargs时,惩罚是从顺序执行中获得的。即使这是真的,恕我直言,这也太慢了