Universal command line unarchiving tool on a Mac

22,227

Solution 1

The Unarchiver has two command line utilities since version 2.5 according to the website:

Supported file formats include Zip, Tar-GZip, Tar-BZip2, RAR, 7-zip, LhA, StuffIt and many other more and less obscure formats. [..] If you have a compressed file that The Unarchiver does not open, please post a bug on the bug tracker, and include the file in question, and I will look into whether it is possible to add support for it!

[..]

There are now two command-line utilities available, unar and lsar, which can be used to unpack and list archives, respectively. They are still in development and not really feature-complete, but they should work. These are available as precompiled binaries for both OS X and Windows on the download page, and can also be built on Linux.

To download the command line tools (not included in the regular The Unarchiver download!), go to the project's google code downloads page and select unar0.2.zip (works as of September 20, 2010).

Solution 2

You can use brew install unar or brew install atool and then:

unar archive.gz
# or
atool -x archive.gz

Solution 3

If you happen to use Homebrew, you can install atool and extract many archive types like so:

brew install atool
atool -x archive.anything

Assuming the corresponding external programs are available on your system, it can handle:

.tar.gz, .tgz, .tar.bz, .tbz, .tar.bz2, .tbz2, .tar.Z, .tZ, .tar.lzo, .tzo, .tar.lz, .tlz, .tar.xz, .txz, .tar.7z, .t7z, .tar, .zip, .jar, .war, .rar, .lha, .lzh, .7z, .alz, .ace, .a, .arj, .arc, .rpm, .deb, .cab, .gz, .bz, .bz2, .gz, .bz, .bz2, .Z, .lzma, .lzo, .lz, .xz, .rz, .lrz, .7z, .cpio

atool is a script for managing file archives of various types (tar, tar+gzip, zip etc).

The main command is aunpack which extracts files from an archive. Did you ever extract files from an archive, not checking whether the files were located in a subdirectory or in the top directory of the archive, resulting in files scattered all over the place? aunpack overcomes this problem by first extracting to a new directory. If there was only a single file in the archive, that file is moved to the original directory. aunpack also prevents local files from being overwritten by mistake.

The other commands provided are apack (to create archives), als (to list files in archives), and acat (to extract files to standard out). As atool invokes external programs to handle the archives, not all commands may be supported for a certain type of archives.

atool identifies archives by their file extension. Sometimes this is not possible - for instance rar archives usually have varying numeric file extensions. In those cases when atool can't identify the format, file is used instead. (atool can be configured not to use file.)

Solution 4

Try 7-Zip. In addition to its own native format (.7z) it can handle the following extensions: ZIP, gzip, bzip2, tar and, in betas for version 9, xz. It can also decompress (only) in the following formats: ARJ, CAB, CHM, cpio, DEB, DMG, HFS, ISO, LZH, LZMA, MSI, NSIS, RAR, RPM, UDF, WIM, XAR and Z.

A Windows command line version 7za.exe is included. For other platforms, a POSIX version named p7zip is available from the P7ZIP SourceForge project, and some of those ports are also linked from 7-Zip's download page. Unfortunately, the Mac link seems broken, so for OS X, either build it yourself or use MacPorts.

EDIT: For non-Windows versions go to the Downloads page. There you can find the source as well as pre-compiled binaries.

Solution 5

For the compression and archiving types that Mac OS X knows natively, you can just use open, and it'll invoke "Archive Utility" (formerly BOMArchiveHelper), just like double-clicking it from the Finder would have. This works for [pk]zip, gzip, bzip, bzip2, tar, pax, cpio, compress (.Z), etc. etc.

If you have apps installed that know how to unarchive other formats, and they have registered for those file extensions or magic(5) values, then the open command will launch those apps to handle those types. Of course you'll probably end up in those apps' GUIs.

Share:
22,227

Related videos on Youtube

tig
Author by

tig

Updated on September 17, 2022

Comments

  • tig
    tig over 1 year

    Is there some command line tool which allows extracting files from most known archive types? Something like StuffIt Expander, but without gui.

  • Arjan
    Arjan over 13 years
    Windows only, as far as I know. The question asks for command line tools for a Mac.
  • tig
    tig over 13 years
    @Arjan: found POSIX version p7zip and it there is macport for it
  • Arjan
    Arjan over 13 years
    @tig, I merged your comment into Joe's answer. However, I do NOT know if p7zip supports all formats that 7-Zip does. If anyone happens to know of a binary download link then let us know.
  • Arjan
    Arjan over 13 years
    Nice! And it supports many formats, just like asked for.
  • tig
    tig over 13 years
    That is what I am using now, but it has some disadvantages: I can't specify options like extracting to specific folder, application window is popping out (even if I run it with -g, it is still under frontmost window)
  • tig
    tig over 13 years
    I can't find CLI there.
  • tig
    tig over 13 years
    Unfortunately, p7zip does not fully handle archives created on mac (with specially named files storing forks and other extra stuff)
  • HikeMike
    HikeMike over 13 years
    tig: You mean you were not able to click on "download page" in the second paragraph nicely quoted by Arjan above and on "unar0.2.zip" there? Because it works fine for me.
  • Arjan
    Arjan over 13 years
    @tig, following the link Daniel referenced, see "unar0.2.zip, unar and lsar command-line utilities for Mac OS X 0.2 (beta version)". Yes, odd that a creator of unzip-software distributes its own software in zip format. ;-) After unzipping, there is a little bit of help using ./unar --help and ./lsar --help
  • HikeMike
    HikeMike over 13 years
    added download information to the reply
  • tig
    tig over 13 years
    @Arjan: Not very odd, as both win and mac can unarchive zip files without third-party apps
  • tig
    tig over 13 years
    @Arjan, @Daniel Beck: Sorry, something with my eyes :) Seems to be the best tool
  • tig
    tig over 8 years
    It is also available through macports not only through homebrew and it is also possible to build from source
  • Dorian
    Dorian almost 7 years
    "You can't vote for your own post" :D
  • ab77
    ab77 almost 5 years
    MacPorts: sudo port install atool
  • Dorian
    Dorian over 2 years
    Oh, I can vote if I'm on my new account :D