zip - macOS
Overview
zip is a macOS command that compresses files and directories into ZIP archives. It is commonly used for archiving multiple files together, reducing their size for easier storage and transfer.
Syntax
zip [options] zipfile input_files
Options/Flags
- -r, –recurse-directories: Recursively add files from subdirectories.
 - -q, –quiet: Suppress progress information.
 - -f, –force: Overwrite existing files without prompting.
 - -v, –verbose: Display detailed progress information.
 - -T, –test: Test the integrity of a ZIP archive without modifying it.
 - -l, –list: Display the contents of a ZIP archive.
 - -i, –include: Specify a list of patterns to include in the archive.
 - -x, –exclude: Specify a list of patterns to exclude from the archive.
 - -C, –directory: Set the root directory for the archive (default: current directory).
 - -m, –move: Move input files to the archive (delete originals).
 - -j, –junk-paths: Remove directory structure from file paths.
 - -z, –zip64: Use ZIP64 extensions to support archives larger than 4GB.
 
Examples
Create a ZIP archive from a single file:
zip example.zip file.txt
Recursively compress all files in a directory:
zip -r archive.zip directory
Compress selected files from a directory:
zip archive.zip -i "*.txt" directory
Exclude a specific file from the archive:
zip archive.zip -x "excluded_file.txt" directory
Test the integrity of a ZIP archive:
zip -T archive.zip
Common Issues
- Permission denied: Ensure you have sufficient permissions to create or modify the ZIP archive.
 - Too many files or folders: ZIP archives have a maximum size limit. Use -z for archives larger than 4GB.
 - Invalid file path: Verbose mode (-v) can provide more details on file path issues.
 
Integration
Combine with tar:
tar -cvf - directory | zip archive.zip -
Use with find:
find directory -print0 | zip -0 archive.zip
Related Commands
- gzip – Compress individual files.
 - tar – Create and extract tar archives.
 - unar – Extract archives of various formats.