Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I need to upload a 400mb file to my web server, but I'm limited to 200mb uploads. My host suggested I use a spanned archive, which I've never done on Linux.

I created a test in its own folder, zipping up a PDF into test.zip.001, .002, and .003. How do I go about unzipping it? Do I need to join them first?

Please note that I'd be just as happy using 7z as I am using ZIP formats. If this makes any difference to the outcome.

share|improve this question

4 Answers 4

up vote 12 down vote accepted

You will need to join them first, I think. Try something like:

cat x* > ~/hugefile

"How to create, split, join and extract zip archives in Linux" may help.

share|improve this answer
    
OK, I like that... Progress... But I really am a Linux n00b here. I assume x* is the filename? And ~/hugefile is a directory? What is the purpose of the tilde symbol? Sorry to ask what I suspect are very basic questions. –  Tim Jun 11 '12 at 2:54
    
when you split the files, you should use a prefix like x_ (ex: x_split1 , x_split2 , ... ; like the windows suffixes file.001, file.002...etc) the tilde represents your home directory. ~/hugefile is the same as /home/tim/hugefile. did you split your files ? what are the split files names? –  fromnaboo Jun 11 '12 at 2:59
    
I think I see where the issue will come in, the Spanned archive was created in windows, using 7zip with a ZIP extension, so it auto creates as TEST.zip.001, TEST.zip.002 and TEST.zip.003 which means the split is very different. It's starting to look like it may be easier to thrown linux on a VMWare and create the files here, then at least i'm only dealing with 1 OS. Can you use the SPLIT command on ANY file type? i.e. images, audio movies etc? –  Tim Jun 11 '12 at 3:03
    
yes, the split command works on any file. install p7zip with apt-get install p7zip on debian or yum install p7zip on fedora, join the files with: cat TEST.zip.* > archive and extract them with. –  fromnaboo Jun 11 '12 at 3:05
1  
7za x archive is probably better if the archive contains a directory structure. –  slm Jan 25 '13 at 16:50

The Linux unzip utility doesn't really support multipart zips. From the manual:

Multi-part archives are not yet supported, except in conjunction with zip. (All parts must be concatenated together in order, and then zip -F (for zip 2.x) or zip -FF (for zip 3.x) must be performed on the concatenated archive in order to “fix” it. Also, zip 3.0 and later can combine multi-part (split) archives into a combined single- file archive using zip -s- inarchive -O outarchive. See the zip 3 manual page for more information.)

So you need to first concatenate the pieces, then repair the result. cat test.zip.* concatenates all the files called test.zip.* where the wildcard * stands for any sequence of characters; the files are enumerated in lexicographic order, which is the same as numerical order thanks to the leadings zeroes. >test.zip directs the output into the file test.zip.

cat test.zip.* >test.zip
zip -FF test.zip --out test-full.zip
unzip test-full.zip

If you created the pieces by directly splitting the zip file, as opposed to creating a multi-part zip with the official Pkzip utility, all you need to do is join the parts.

cat test.zip.* >test.zip
unzip test.zip
share|improve this answer
1  
the 2nd command should be zip -FF test.zip --out test-full.zip -- will give you an error without the --out command –  Alvin Aug 11 '12 at 4:49

I found the answer here: http://superuser.com/a/517758/10264

This answer is similar in concept to that of Gilles, namely first you combine the split archive into a normal archive using split, and then you unpack it using unzip.

The difference is that instead of using the -FF flag, which did not work for me, you just tell zip to repack the split file without splitting. That is what the -s 0 flag means.

So, first, combine the split archive to a single archive:

zip -s 0 split-foo.zip --out unsplit-foo.zip

Then, extract the single archive using unzip:

unzip unsplit-foo.zip
share|improve this answer

This may not be helpful on a web server with limited software installed, but I haven't seen this solution anywhere else and it's what I use:

The java.util.zip API has dealt with all the ZIP parts I've thrown at it, even in the more general case of not having trailing parts or the last part being incomplete. I call it from Jython so it's in the form of a script, and here is the code:

https://github.com/combatopera/unzipparts

share|improve this answer
    
While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. –  rahmu Feb 17 '13 at 13:35

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.