Zip File Command Line Tools for Windows, Linux and Mac OS/X
Create or extract Zip files on the command line
with these free Open Source tools for Windows,
Linux and Mac OS/X.
Swiss File Knife Zip/Unzip: flexible and easy
then type sfk zip or sfk unzip for the help text.
Binaries for all other platforms are available
here.
| ||
Info ZIP
|
Info-Zip Zip: the fast standard tool
|
|
7-Zip
|
7-Zip: the fastest
|
|
Windows File Explorer:
Although the following are no command line tools,
Windows 7 File Explorer
Windows 10 File Explorer
|
Zip file 8-bit filename encoding overview
In 2018, filename encoding in Zip files lays in ruins. If everyone would use UTF-8, there would be no problem. But the Zip format exists since the 1980s, and at that time no Unicode or UTF-8 standard existed. So in the beginning, until today, filenames are primarily encoded as 8-bit chars with some codepage.
- the Zip standard says: use OEM codepage 437.
but this codepage is junk, it does not contain most
special characters, like many accent chars.
For example the character
U+00C2, LATIN CAPITAL LETTER A WITH CIRCUMFLEX
does not exist in this codepage, so when strictly following it, many special chars need to be changed to a placeholder like "_".
A Windows system uses two codepages: Ansi and OEM.
- SFK zip uses the system OEM codepage. on a western european computer, normally this is 850, and very close to 437. So A_Circumflex, U+00C2, is encoded as 0xB6. Although not exactly codepage 437, this is the closest compromise, but only on systems with codepage 850. SFK adds a Zip file comment like meta: os=win; code=850,utf; agent=sfk 1.9.1 that at least the encoding is known.
- 7-Zip 16.04 uses the system OEM codepage, just like SFK.
- InfoZip zip.exe V2.32 uses the system Ansi codepage. on a western european computer, normally this is 1252. So A_Circumflex, U+00C2, is encoded as 0xC2. This is the most simple way a programmer would do it, if he completely ignores the Zip format name encoding standard. But when extracting this with Windows explorer, special characters like the above will be wrong, as Windows explorer expects OEM encoding. And if you need to extract such a file with sfk, tell clearly the encoding, like: sfk unzip in.zip -fromcode=1252
- InfoZip zip.exe V3.0 uses the system OEM codepage, just like SFK.
- InfoZip Unzip 5.52 cannot extract UTF-8 unicode, but InfoZip Unzip 6.10 beta can extract UTF-8 unicode.