Compress files from OS X terminal?

168,155

Solution 1

It's called zip.

This adds the file file to the archive file.zip:

zip file.zip file

Of course, to add more files, just add them as arguments to the command. Check out man zip for more options.

Often, you'll want to skip including those pesky .DS_Store files, for example compressing the whole folder folder into folder.zip:

zip -vr folder.zip folder/ -x "*.DS_Store"

Solution 2

To compress the files exactly as the Finder command would compress them, use:

ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip

See man ditto for details:

 The command:
       ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip
 will create a PKZip archive similarly to the Finder's Compress function-
 ality.

Solution 3

with considering the above answers, If you want to compress a directory or folder with the zip command:

zip -r directory.zip directory

Explanation:

zip command for zipping

directory.zip is the destination file that will be created after running the zip command.

direcotry source folder which you want to be compressed.

-r flag will recursively iterate in folders and subfolders.

Solution 4

There is tar(1) and gzip (or bzip2 or lzma). Tar is used to roll a number of files into one archive, while the one of the other three is used to compress it.

On a command line, you will call tar with a couple of options to create an archive and gzip it.

E.g.:

tar -c -z -f myarchive.tar.gz -C /home/username Downloads

This willl -c reate a g -z ipped archive named -f ile from the -C hange-folder-to directory and will contain all files in the folder Downloads. The -C option is optional and the source-file arguments will be taken from the current folder if omitted.

For reference: tar tutorial

Share:
168,155
William Jockusch
Author by

William Jockusch

Updated on September 18, 2022

Comments

  • William Jockusch
    William Jockusch over 1 year

    In the Finder, there is this wonderful ability to right click on a file or directory, select compress from the drop-down, and end up with a zipped file.

    Is it possible to do the same thing from the terminal?

  • slhck
    slhck almost 10 years
  • Henry Blyth
    Henry Blyth almost 7 years
    This is the best answer because it produces an identical zip, whereas CLI zip or tar is different and slightly smaller. A similar question with the same answer: stackoverflow.com/questions/10738505/…
  • mwfearnley
    mwfearnley over 6 years
    Is it the plain old GNU zip that comes with OS X?
  • slhck
    slhck over 6 years
    @mwfearnley Under macOS, it's Copyright (c) 1990-2008 Info-ZIP. developer.apple.com/legacy/library/documentation/Darwin/…
  • commonpike
    commonpike about 5 years
    link to manpage broke .. just use man zip on the command line
  • Victor VosMottor
    Victor VosMottor about 4 years
    I got an empty zip file :(
  • slhck
    slhck about 4 years
    @VictorVosMottorthanksMonica Please ask a new question about this and include as much info as possible.
  • ivanzolotov
    ivanzolotov about 4 years
    @VictorVosMottorthanksMonica, add -r when you compress folders.
  • ivanzolotov
    ivanzolotov about 4 years
    You can use -X to exclude all annoying Mac OS hidden files, not only DS_Store.
  • Võ Quang Hòa
    Võ Quang Hòa about 3 years
    Thanks. This is what I am looking for
  • Artur Müller Romanov
    Artur Müller Romanov over 2 years
    This should be the correct answer