1

我想知道是否有更好的方法可以从 .tar.bz2 文件中重命名文件,而无需解压缩并重新打包整个存档。

4

1 回答 1

1

bzip2 对 tar 生成的整个流执行流压缩。它没有文件的概念,因此在 tar.bzip2 存档中查找文件的唯一方法是解压缩 bzip2 直到文件出现的位置。删除该文件并创建一个新的 tar.bz2 存档将需要创建一个新的 tar 文件。

如果您编写一个特殊用途的缓存以避免在解压缩存档时重新压缩,您也许可以重用原始 tar.bz2 存档的开头,但您肯定必须重新压缩存档的其余部分。

如果你的问题是磁盘空间问题,你可以尝试通过管道在线执行整个解压和压缩,即

bzcat original.tar.bz2 | command_to_rename_inside_tar | bzip2 > result.tar.bz2
于 2012-09-11T17:24:31.427 回答