Macos Zip Directory

Zip file is created and save in the current working directory. If single file is zipped, a.zip extension is added to the name of the file. If multiple files are zipped, “Archive” will be the name of the zip file, and upon creation of multiple zips in the same directory their name will increment as “Archive 2” and so on. Zip -r /path/to/archive.zip directory/. This will recursively add all files (indulging hidden and annoying ones) to our file. Note that ZIP accomplishes this by temporarily extracting all files before creating a new archive for is (while deleting our original file).

Zipping files on Apple/Mac is a chore because of all the hidden files and folders added by macOS. Like .DS_Store and __MACOSX are two of the most common files and folders that are added to zip files when compressed on macOS.

The folder named __MACOSX especially is problematic because it contains duplicates of every file in the zip archive. So for example, if you use Finder to compress 20 files, the resulting zip file will contain the original 20 files, plus an additional 20 files all hidden under the /__MACOSX/ folder.

It’s a real pain and can be confusing to deal with because when you unzip the files on a Mac, the hidden files and folders are not included in the unzipped files. So you won’t be able to view them, even after you enable display of hidden files. The only way to view all the hidden files/folders is to open the zip file on a non-Mac machine, like PC/Windows or Linux.

Hidden Files: To view hidden files on PC/Win, visit View Options in File Explorer. To view hidden files on Mac, the easiest way is to use a free app like Funter.

Hidden Files

Here are some screenshots showing the hidden files and folders that are included for any folder compressed (zipped) on macOS. First screenshot shows the hidden __MACOSX directory, which is visible on PC when you open the zip file.

On PC/Win the hidden files (like __MACOSX) are visible

The next screenshot shows the set of duplicate files and folders that are included in zip files compressed on macOS. Notice the file names, each begin with a dot ., which makes the files hidden by default on most systems.

Mac includes hidden duplicates of every compressed file (viewed on PC)

Now compare those previous screenshots (taken on PC) with the following screenshot (taken on Mac). Even with “show hidden files” enabled, the hidden __MACOSX folder and all the hidden files are not included (i.e., they do not exist hidden or otherwise) in the unzipped archive.

Mac excludes all hidden macOS files when opening zip archives (view hidden files enabled)

So again, all the hidden files/folders added by Mac are included in the unzipped files ONLY when the files are unzipped on non-Mac machines. Thus the confusion: Why on earth are the hidden files added in the first place? They are completely excluded when unzipping on Mac, and never needed for any reason on any other machine. In fact quite the opposite: the hidden files serve NO purpose other than to waste bandwidth, time, energy, resources, etc.

Why does macOS include hidden files in zip archives? It makes absolutely zero sense.

Real Problems

This is a real problem because many people use Mac to zip files to share on the Web. Problem is that not everyone uses a Mac. So anyone downloading your zip files on their Windows, Linux, or other non-Mac is going to see all those hidden files and folders. Which are utterly useless to non-Mac devices and users.

Macos Zip With Password

Macos zip folder

Further, by adding a duplicate set of hidden files to the zip archive, Mac essentially is doubling the size of the download zip file, which of course wastes bandwidth, disk space, and everything else. May not be a huge deal for smaller zip files, but we’re talking about potentially millions or billions of zip files downloaded every day, needlessly bloated with useless data.

Web Devs: The hidden __MACOSX directory and its duplicate set of files can cause problems with things like installing WordPress plugins and other applications. So if you are WordPress/Web developer, use a version-control system to manage and package/zip your files. That way you keep all the hidden junk completely out of the picture. Alternately if you aren’t using version control, you can remove/exclude unwanted hidden files using one of the techniques below.

Real Solutions

Fortunately, all the hidden garbage is not needed on any machine — including Mac — so it’s all 100% totally safe to delete. So regardless of which machine/OS you are using, you can safely delete __MACOSX and .DS_Store from any zip archive. The files literally are useless. Read on to learn some different techniques for removing the __MACOSX and .DS_Store from ZIP Files on macOS.

PC/Win users: The techniques below explain how to remove/delete unwanted hidden files on Mac. If you are using PC/Win, you can simply open the archive and delete any unwanted hidden files.

Use software to exclude hidden files from NEW zip archives

For new files, you can use an app such as YemuZip or any free alternative to zip compress new files without any hidden junk.

I don’t know of any apps that can retroactively remove hidden files/folders from existing zip files. If you know of any, drop a comment or send via contact form.

Use an app like YemuZip or free alternative to compress/zip without any hidden files

Use command line to exclude hidden files from NEW zip archives

On Mac you can use Terminal to easily remove all of the hidden files/folders from existing zip files. Here are some techniques that I use for my own projects.

When creating new ZIP archives, you can use the zip command to compress/zip files without any hidden files like .DS_Store and __MACOSX. Here are the steps:

  1. Open the Terminal app
  2. Navigate to the folder that contains the files you want to zip
  3. Type or paste the following command into Terminal*:
  4. Press Enter to execute and done.

Macos Zip Folder

The resulting zip archive will be named data.zip and located in the same directory as the original uncompressed files. The data.zip archive will not include any __MACOSX or “dot-hidden” files (i.e., file names that begin with a literal dot).

*Important: The above command will remove all dot-hidden files, including files like .htaccess and other common/useful files. So if you want to keep some hidden files and only remove the ones added by macOS, use this command instead:

Macos Zip Command Line

Tip: Use the cd and ls commands to navigate in Terminal.

Example

To give this a real-world example. Let’s say you have a folder on your desktop called Folder that includes a bunch of files that you want to zip/compress.

First, open terminal and write following commands:

Now you have a file called data.zip on your desktop that does not include any __MACOSX or .DS_Store files. I.e., a nice clean zip file with no hidden garbage.

Use command line to remove hidden files from EXISTING zip archives

Mac Os Zip Directory

The above techniques show how to exclude hidden files when creating new zip archives. But what if you want to remove hidden files from an existing zip archive? Easy. In Terminal, navigate to the directory that contains your zip file and enter the following two commands:

And/or if you have multiple zip archives in some folder, and want to remove all hidden macOS files from all of them in bulk. Use Terminal to navigate to the folder and enter the following commands:

I use this technique for zip files I serve here at Perishable Press and elsewhere.

Tip

Mac

For a “quieter” Terminal experience, you can add the q (quiet) or qq (quieter) parameter to the previous bulk-delete command:

Cheers people.

Jeff Starr = Fullstack Developer. Book Author. Teacher. Human Being.