【发布时间】:2015-09-22 00:24:11
【问题描述】:
我有数千个未压缩的 tar 文件,这些文件加起来将近 1 TB 的数据。现在我想修改一些 tar 文件中的一个特定字符串。
我可以直接执行此操作而不提取 tar 文件,例如与 sed?我当然不想得到损坏的 tar 文件。
详情:
我要修改的字符串长度为 4 个字符。我可以用另一个 4 个字符的字符串替换它吗? specification of a tar file 似乎只包含 tar 文件中包含的每个文件的标头以及每个文件的长度的校验和,因此将 tar 文件中包含的文件中的 4 个字符替换为其他 4 个字符应该没问题,对吧?
我什至可以用 6 个字符的字符串替换 4 个字符的字符串吗? tar 文件中似乎有一些填充,那么添加 2 个字符时得到损坏的 tar 文件的概率是多少?对于这样一个损坏的 tar 文件,提取的效果如何?
我没有嵌套的 tar 文件,所以 this negative answer 不适用于我的情况。
【问题讨论】:
-
从tar中解压出需要的文件,用sed修改,从tar文件中删除文件,然后将修改后的文件添加到tar文件中?
-
是的,有效的评论,赛勒斯。但是对于 1TB 的数据,我认为考虑一种优化方法也是有效的——这就是问题所在。
标签: linux unix archive tar corruption