Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #104029 > unrolled thread

Re: creating zipfile with symlinks

Started byLarry Martell <larry.martell@gmail.com>
First post2016-03-04 07:18 -0500
Last post2016-03-04 07:18 -0500
Articles 1 — 1 participant

Back to article view | Back to comp.lang.python

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: creating zipfile with symlinks Larry Martell <larry.martell@gmail.com> - 2016-03-04 07:18 -0500

#104029 — Re: creating zipfile with symlinks

FromLarry Martell <larry.martell@gmail.com>
Date2016-03-04 07:18 -0500
SubjectRe: creating zipfile with symlinks
Message-ID<mailman.185.1457093980.20602.python-list@python.org>
On Thu, Mar 3, 2016 at 10:32 PM, Larry Martell <larry.martell@gmail.com> wrote:
> On Thu, Mar 3, 2016 at 4:58 PM, Chris Angelico <rosuav@gmail.com> wrote:
>> On Fri, Mar 4, 2016 at 8:38 AM, MRAB <python@mrabarnett.plus.com> wrote:
>>> Is it even possible to zip a link?
>>>
>>> A quick search came up with this:
>>>
>>> Are hard links possible within a zip archive?
>>> http://stackoverflow.com/questions/8859616/are-hard-links-possible-within-a-zip-archive
>>
>> Hard links are different. Symlinks are files containing the target
>> filename, with a special mode bit set. I'm not sure if it's a standard
>> feature of all zip archivers, but on my Debian system, I can use "zip
>> --symlinks" to create such a zip. How that will unzip on a system that
>> doesn't understand symlinks, I don't know.
>>
>> rosuav@sikorsky:~/tmp$ ls -l
>> total 4
>> -rw-r--r-- 1 rosuav rosuav 162 Mar  4 08:48 aaa.zip
>> lrwxrwxrwx 1 rosuav rosuav   4 Mar  4 08:49 qwer -> asdf
>> rosuav@sikorsky:~/tmp$ unzip -l aaa.zip
>> Archive:  aaa.zip
>>   Length      Date    Time    Name
>> ---------  ---------- -----   ----
>>         4  2016-03-04 08:45   qwer
>> ---------                     -------
>>         4                     1 file
>>
>>
>> That's a broken symlink (there is no "asdf" in the directory), and zip
>> and unzip are both fine with that.
>>
>> Now, how the Python zipfile module handles this, I don't know. The
>> ZipInfo shows a file mode of 'lrwxrwxrwx', but when I call extract(),
>> it comes out as a regular file. You might have to do some work
>> manually, or else just drop to an external command with --symlinks.
>
> Thanks. That's what I ended up doing.

Unfortunately very slow - around 8 minutes to zip a 7GB dir using the
command line zip vs. 13 seconds with the python zipfile module.

[toc] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web