2012-09-11 41 views
1

我想知道是否有更好的方法來重命名.tar.bz2文件中的文件,而不打開它並重新打包整個存檔。如何重命名tar.bz2檔案中的文件?

+3

它*威力*能夠重新命名tar文件中的文件。然而,更大的問題是bz2壓縮。也許有可能掛載壓縮文件? (但是還有東西需要解壓縮/壓縮。) – 2012-09-11 17:01:53

+1

請參閱http://unix.stackexchange.com/questions/26105/rename-directory-inside-of-a-tar-archive – 2012-09-11 17:03:18

回答

1

bzip2對tar生成的整個流進行流壓縮。它沒有文件的概念,因此在tar.bzip2壓縮文件中查找文件的唯一方法是解壓縮bzip2直到文件出現的位置。刪除文件並創建新的tar.bz2壓縮文件需要創建一個新的tar文件。

可能如果您編寫專用緩存以避免在解壓縮歸檔時進行重新壓縮,您將能夠重新使用原始tar.bz2歸檔的開頭,但您肯定必須重新壓縮歸檔的其餘部分。

如果你的問題是磁盤空間,您可以嘗試通過管道在線完成整個解壓縮和壓縮,即

bzcat original.tar.bz2 | command_to_rename_inside_tar | bzip2 > result.tar.bz2