Updating a File in a Zip Archive

Hello everyone,

I have a script that pulls a text file out of a zip archive and updates the file. What I need to do is put it back in the zip archive and replace the old one, but I am having no luck.

Everything I search on forums or internet points to the command zip, that command is not available to me. Also this needs to be a zip archive that can be extracted using the unzip command.

Any help would be great.

Thanks,

DBridle

Using InfoZip on Solaris 2.8, the -f (freshen) flag works like this:

$ unzip -Z archive.zip  
Archive:  archive.zip   918 bytes   4 files
-r--r--r--  2.2 unx     152 tx defN 27-Sep-06 14:15 file1
-r--r--r--  2.2 unx     152 tx defN 27-Sep-06 14:15 file2
-r--r--r--  2.2 unx     152 tx defN 27-Sep-06 14:15 file3
-r--r--r--  2.2 unx     152 tx defN 27-Sep-06 14:15 file4
4 files, 608 bytes uncompressed, 416 bytes compressed:  31.6%
$ /usr/ucb/lptest > file3
$ zip -f archive.zip file3
freshening: file3 (deflated 97%)
$ unzip -Z archive.zip    
Archive:  archive.zip   1255 bytes   4 files
-r--r--r--  2.2 unx     152 tx defN 27-Sep-06 14:15 file1
-r--r--r--  2.2 unx     152 tx defN 27-Sep-06 14:15 file2
-r--r--r--  2.2 unx   16000 tx defN 27-Sep-06 14:27 file3
-r--r--r--  2.2 unx     152 tx defN 27-Sep-06 14:15 file4
4 files, 16456 bytes uncompressed, 753 bytes compressed:  95.4%

Unfortunately the zip command from InfoZip is not available to me.

I'm sorry, obviously I did not read carefully enough. Let me try again...You stated that you have a script that extracts a file from a ZIP archive. What command are you using to do this? Also, what OS are you using? I'd be very surprised if a UNIX zip package had an unzip command but no zip counterpart. I'd also be surprised if any zip package wasn't just InfoZip compiled for that OS.

Try running your unzip command with only a -v or -V for version information.

UnZip 5.40 of 28 November 1998, by Info-ZIP.

There is no zip counterpart to it that I can see. Please bare in mind that I work for a large financial corporation, so everything is fairly restrictive ;(

Unfortunately, unzip is "out-going" only. Unlike its gzip cousin which uses the same executable for gzip, gunzip, and gzcat, Info-ZIP's zip command is an entirely different binary. So, without installing the zip command -- available from Info-ZIP's Zip -- there is no way for you to freshen files in a ZIP archive.

I appreciate the nature of a restrictive environment, but if your management requires you to update ZIP archives, then they must allow you to use the necessary tools. That's always a fun sell.

Good luck.

Just for giggles, try scanning the system (this could take a while):

$ find / -local -type f -name zip

My unix admin group was being champs and installed zip, with the -f refresh option so I'm all set.

Thank you for your help in pointing me in the right direction!