编辑文件而不解压缩存档

Posted

技术标签:

【中文标题】编辑文件而不解压缩存档【英文标题】:Edit file without unzipping archive 【发布时间】:2012-11-29 19:52:40 【问题描述】:

我如何在不解压缩存档的情况下编辑文件,原因是我正在编写自动化任务,我可以解压缩,编辑文件并压缩它,但如果我可以在运行时完成它会很好,这样可以节省解压缩时间/压缩。

【问题讨论】:

重复问题。你不能这样做,见下文:***.com/questions/6334037/… 【参考方案1】:

zip man page 提供了一个 -u 选项来更新 zip 存档。你可以这样使用它:

zip -u bigzip.zip file/to/update1 file/to/update2 ...

它不会是即时的,但会快很多。如果我创建一个 200MB 的示例 zip 文件:

mkdir source
for (( f = 0; f < 200; f++ )); do
    head -c 1000000 /dev/random > source/$f
done
zip -0r bigzip.zip source

然后在我的机器上解压缩、编辑一个文件并重新压缩大约需要 9 秒:

unzip bigzip.zip
head -c 1000000 /dev/random > source/3
zip -0r bigzip.zip source

但是调用zip -u只需要大约3s。

mkdir source
head -c1000000 /dev/random > source/3
zip -u bigzip.zip source/3

【讨论】:

这个脚本 zip -u file.zip path-to-file-1 path-to-file-2 ... 不适用于 python3。我需要遵循什么技巧吗?

以上是关于编辑文件而不解压缩存档的主要内容,如果未能解决你的问题,请参考以下文章

HP-UX - 如何在不解压缩的情况下从 tar 存档中读取文本文件?

如何在不解压缩的情况下列出 zip 存档中的文件?

如何在不解压缩内容的情况下查看 .tar.gz 存档中特定文件的内容?

如何更新 zip 存档中的一个文件

压缩后如何立即使用 Phar 解压缩存档?

如何从 zip 文件中读取数据而无需解压缩整个文件