Recursive unrar of several folders

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
0

3 Answers

find Photos/ -name '*.rar' -execdir unrar e {} \; 
1

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.

2

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/ \;

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like