Reputation: 17467
How do i edit file without unzipping archive, reason is i am writing automation task, I can do unzip, edit file and zip it, But it would be good if i can do it in runtime so it will save time to unzip/zip.
Upvotes: 4
Views: 7863
Reputation: 34873
The zip
man page provides a -u
option to update a zip archive. You can use it like so:
zip -u bigzip.zip file/to/update1 file/to/update2 ...
It won't be instant, but it will be a lot faster. If I create a sample 200MB zip file:
mkdir source
for (( f = 0; f < 200; f++ )); do
head -c 1000000 /dev/random > source/${f}
done
zip -0r bigzip.zip source
then unzipping, editing one file, and rezipping takes about 9s on my machine:
unzip bigzip.zip
head -c 1000000 /dev/random > source/3
zip -0r bigzip.zip source
but it takes only about 3s to call zip -u
.
mkdir source
head -c1000000 /dev/random > source/3
zip -u bigzip.zip source/3
Upvotes: 4