Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have several RAR archives spread around multiple directories but all under a particular root folder on my Debian based NAS. Could someone help me write a simple script that would recursively go into each folder, unrar the contents, go back to the parent folder and move onto the next directory? So:

cd Photos/Summer/Italy/
unrar e Italy.rar
wait
cd ../France/
unrar e France.rar
wait
etc...

So just point it to root folder "Photos" and it blitzes through it unraring everything on the way...

Eg, directory structure:

*Photos:
 -Summer
  --Italy
   ---Italy.rar
   ---Italy.r01
   ---Italy.r02
  --France
   ---France.rar
   ---France.r01
   ---France.r02
 -Winter
  --Siberia
   ---Siberia.rar
   ---Siberia.r01
   ---Siberia.r02
  --Canada
   ---Snow.rar
   ---Snow.r01
   ---Snow.r02
share|improve this question
up vote 8 down vote accepted
find Photos/ -name '*.rar' -execdir unrar e {} \; 
share|improve this answer
    
Brilliant, didn't know it was so easy! Thank you very much! – Touff Apr 16 '12 at 23:17

If you want to move the unrar'd photos to another destination, just enter the destination in the end, like this:

find source_dir/ -name '*.rar' -execdir unrar e -o- {} /new/destination_dir/ \;

share|improve this answer

unrar has built-in recursion using the -r Recurse subdirectories switch.

unrar x -r <parent directory> Extracts contents of all subdirectories under <parent directory> into each subdirectory, keeping any directory structure that exists in the .rar files. Use e instead of x if directory structure is unwanted.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.