creating zipfile with symlinks
Larry Martell
larry.martell at gmail.com
Thu Mar 3 22:32:56 EST 2016
On Thu, Mar 3, 2016 at 4:58 PM, Chris Angelico <rosuav at gmail.com> wrote:
> On Fri, Mar 4, 2016 at 8:38 AM, MRAB <python at 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 at 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 at 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.
More information about the Python-list
mailing list