我想知道是否有更好的方法可以从.tar.bz2文件中重命名文件,而无需解压缩并重新打包整个存档。
答案 0 :(得分:1)
bzip2对tar生成的整个流执行流压缩。它没有文件的概念,因此在tar.bzip2存档中查找文件的唯一方法是将bzip2解压缩到文件出现的位置。删除文件并创建新的tar.bz2存档需要创建一个新的tar文件。
如果您编写专用缓存以避免在解压缩存档时进行重新压缩,可能能够重用原始tar.bz2存档的开头,但您肯定必须重新压缩其余的存档。
如果您的问题是磁盘空间,您可以尝试通过管道在线执行整个解压缩和压缩,即
bzcat original.tar.bz2 | command_to_rename_inside_tar | bzip2 > result.tar.bz2