4

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

4

1 回答 1

3

zip手册页提供了-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

但是调用只需要3s左右zip -u

mkdir source
head -c1000000 /dev/random > source/3
zip -u bigzip.zip source/3
于 2012-11-29T21:55:34.060 回答