Skip to content
Novus Examples
zip663 B

ZIP - Symlink Member

share/current.csv is a symbolic link, stored the Info-ZIP way: the external attributes carry S_IFLNK and the member payload is the 16-byte target path rather than file content. The target is relative and resolves inside the archive, so extracting without symlink support produces a harmless text file instead of a dangling or escaping link.

Archive contents — 3 entrieszip
  • records.csv
  • current.csv
  • README.txt

Specifications

Seed
20260807
Members
3
Symlink Members
1
Symlink Encoding
S_IFLNK (0o120000) in external attributes; payload is the target path
Target
data/records.csv (relative, stays inside the archive root)
Fallback
readers without symlink support write a 16-byte text file

Testing contract

Expected to pass
Scenario
Extract with symlink support and resolve share/current.csv.
Expected result
share/current.csv is a symlink to data/records.csv and resolves to the 4-row CSV; without symlink support it extracts as a 16-byte text file containing that path.

What is a .zip file?

ZIP is a widely supported archive format that bundles multiple files and directories into one container, typically with per-file DEFLATE compression and a central directory index. It supports random access to individual entries without decompressing the whole archive. It underlies many document formats such as DOCX and EPUB.

How to use this file

Use an example ZIP to test archive extraction, central-directory parsing, per-entry decompression, and protection against path-traversal (zip-slip) during unpacking.

How to use this file for testing

“ZIP - Symlink Member” is a deterministic Novus Examples fixture for Conversion testing, Metadata testing. The same content exported across many formats and linked as a group, so you can convert one and diff against the expected twin.

Documented properties for this file: seed 20260807. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Archive fixtures are documented down to their member list (shown on this page) and are deliberately safe — no zip bombs, executables, or hidden payloads. Test extractors against nested, unicode, empty, and encrypted variants.

Code examples

unzip -l symlink-member.zip     # list members
unzip symlink-member.zip -d out/  # extract

Generated by generation/archives_p7.py. Free for any use, no attribution required — license.