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
  • very flexible file selection:
    • zip all files of a folder, except named sub folders or files
    • zip only files changed today
    • zip files that differ between two folders
    • zip files that contain a search text
  • easy plain English syntax
  • full UTF-8 unicode filename support. under Windows, sfk zip includes every filename twice into the zip, as 8-bit chars for old extraction tools, and as UTF-8 by an extension field.
  • full 64 bit zip file size support
  • available for most platforms
Download SFK for Windows here or from sourceforge,
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
  • compress twice as fast as with sfk zip
  • directly available on many linux systems, e.g. by apt-get install zip
  • but may not support UTF-8 unicode, or 64 bit file sizes
  • available here on stahlworks.com are copies of: which cannot handle UTF-8 unicode at all.
  • the very latest versions would be zip 3.1 and unzip 6.10. these are Betas, official binaries were never released by Info-Zip. here are binaries compiled by stahlworks.com, from the original sources provided on the Info-Zip sourceforge site. these versions come with full UTF-8 unicode support, but are not fully tested. As of 2018, the original Info-Zip.org website seems offline, but you may check their sourceforge site for further informations.

  •  
7-Zip
7-Zip: the fastest
  • compress even faster then with Info-Zip zip
  • partial UTF-8 unicode creation: as long as filename characters fit within your Windows codepage, it does not create UTF-8 but takes characters as is. this could create wrong filename chars on computers with a different codepage, or under Linux/Mac.
  • full UTF-8 unicode extraction
download on the 7-zip.org website.
 
 
 
Windows File Explorer:

Although the following are no command line tools,
they will be used by many people, and need to be mentioned:

Windows 7 File Explorer

  • create/extract zip files instantly
  • very limited special filename character support
  • does not support UTF-8 unicode

Windows 10 File Explorer

  • create/extract zip files instantly
  • can extract UTF-8 unicode names
  • can zip files with special characters of your system,
    like umlauts or accents
  • but cannot zip complex unicode names, like asian or cyrillic

 
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 "_".
therefore every zip creation tool ignores codepage 437. But what is used instead?
 
 
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.