Re: Unzip archive in which are multiple sub zip archiers?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]





On 04/17/2015 10:34 PM, Maarten de Vries wrote:


On 04/17/2015 10:19 PM, Christian Demsar wrote:
http://pastebin.com/YJFvUt13

It works on my (single) test case so far. I don't have any more time to work in this right now, but I'll test edge cases and add more comments later (feedback is welcome).

If you use this, please, please, please back up your zip file in a different directory. I haven't tested it thoroughly enough to be confident that it won't suck your files into the black hole of /dev/null.

On a side note, it does check to make sure the directory doesn't exist, so it shouldn't clobber anything. That goes for the internal zips as well.

The only cryptic thing in the $IFS env var. That's needed for newline delimiters, so I can iterate over the zip files in a directory. I'll experiment with leaving that section out.

There's probably a bash guru out there that can do this with a one-liner, but that's beyond my skills (I'm a newbie at bash, too).

You should be able to avoid fiddling with IFS by using:

    shopt -s nullglob
    zipfiles=(*.zip)

It also has the advantage of not spawning a process to find zip files. The nullglob option is needed in case there are no zip files, otherwise (*.zip) will turn into a literal ('*.zip') instead of an empty array.

Regards,
Maarten

Oh, and I forgot to mention that when you do that you ought to loop over the array as (bash is a bit weird):

   for file in "${zipfiles[@]}"; do

Otherwise paths with spaces would be a problem.

Regards,
Maarten



[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux