Wednesday, April 24, 2024

Extracting RAR archives in the command line on Mac OS X

There are plenty of free and commercial tools to extract RAR archives on Mac OS X. A few names that come to mind are The Unarchiver, The Archive Browser, Archiver, and StuffIt Expander. That last one (StuffIt) is in my opinion bloated and overly expensive.

However, for those who wish to learn more about what can be done in the command line in Terminal, here are instructions on how to extract RAR archives that way.

Step 1

Implement the steps in this previous article on installing RAR and UNRAR command line tools. The instructions there have been updated for OS X up to Yosemite (10.10.x). When you finish the installation keep Terminal open ready for the next step.

Step 2

TIP: Rather than typing the path of files and folders into Terminal you can simply drag the file or folder from Finder into Terminal. Make you have you one trailing space after the command you have typed in, and then drag the file or folder to capture its path.

In Terminal type the following commands

cd ~/Downloads/extraction_destination

unrar x ~/Downloads/The-archive.rar

cd changes to the directory where you want the file(s) extracted to. This is the destination. Change the path to the correct one for your situation.

~/ is an abbreviation for /Users/YourUsername/ so the full path without that abbreviation would be /Users/YourUsername/Downloads/TheArchive.rar, for instance.

unrar tells unrar (the application) to execute. The x tells unrar to extract the following file into the current directory, whilst maintaining directory structure of the archive contents.

Handling Passwords

Some archives have passwords. They are easy to handle in unrar.

unrar x -pTHEPASSWORD -y ~/Downloads/The-archive.rar

-pSECRET is the command -p (indicating what follows is the password) along with THEPASSWORD which should be replaced with the actual archive password.

The -y command simply tells unrar to answer yes to any yes/no questions that arise during the extraction process.

What about multi-file and batches of archives?

Not a problem.

If the batch of files are actually just the parts of a large split RAR file, unrar will automatically go through them all. So the command for that is the same as shown above. Just select the name of the first file in the batch, which should be the one with .rar as the extension, as opposed to .00, .01, etc.

If you have a folder filed with unrelated RAR files, you could do them in one swipe with this command:

cd ~/Documents/extraction_destination

find ~/Downloads/ -name "*.rar" -exec unrar -pSECRET -y -ad x {} \; 

cd ~/Documents/extraction_destination

cd changes the active directory to the destination for the extracted archives.

find finds all files in the ~/Downloads folder with .rar as the extension.

-exec tells Terminal to execute the following unrar command on the found files

unrar is what’s being executed to perform the extraction. After it are various switches, such as the password (this will only work if there is the same password on all the files), and -y answers YES to all questions, and -ad tells unrar to create a new folder for each archive. The folder will be the same as the name of the archive. The { } is used by the Find command, referring to the files just found, and \; end the command when the whole process is done.

You might like to leave unrar doing its thing if there are big archives to be extracted. When you return it is a good idea to search for any errors. With the Terminal window active (and your extraction results in there) hit Command-F to bring up the Find tool. Look for the word “error” and see if any files generated an error.

You can get a full list of the options for unrar by simply typing unrar into Terminal, and hit the Return/Enter key.

Dealing with corrupt files

If you get errors saying some of the files are corrupt, read the following two articles to determine which files are corrupt and how to potentially fix them.

Testing archives for corrupt files

Repairing corrupt archive files

Recent Articles


Related Stories

1 Comment

Leave A Reply

Please enter your comment!
Please enter your name here

Stay on op - Ge the daily news in your inbox