- Main Folder
- Sub-Folder 1
- Sub-Folder 2
- Sub-Folder n etc
This is really tedious to go through each sub-folder and unrar each archive so I wrote a simple script for him to run straight from the linux/*BSD command line:
angus@server: ~# directory=/path/to/directory ; for dir in $( ls $directory ) ; do cd $dir ; unrar e *.rar ; cp *.avi /path/to/end/directory ; cd .. ; done
It seems to work relatively well. An expansion of this as a bash script:
# Script to extract RAR files downloaded in torrents - usually TV series type torrents
# This is the directory your torrents are downloaded to
echo "Please input torrent directory: "
read -r "input_torrent"
# This is the directory you want the extracted files to be copied to
echo "Please input directory for extraction: "
read -r "output_dir"
#enable for loops over items with spaces in their name
for dir in `find "$input_torrent" -type d`
# ls # uncomment this line and comment the two lines below for testing
unrar e *.part001.rar #or this can be unrar e *.rar
cp *.avi "$output_dir"
Notes about this script:
- unrar e *.part001.rar
- I've found that this may need to be altered dependent on my friend's torrents. The directory may have the files set up in a similar pattern to this above: file.partXXX.rar OR also commonly found is file.XXX with a file.rar that is the key file to the archive
- The input_torrent and output_dir variables need to be written without backslashes i.e.
- /path/to/files with a space in the name
- NOT /path/to/files\ with\ a\ space\ in\ the\ name as you would usually expect in a *nix environment
- This is because I'm learning bash scripting and making things all neat and tidy is more than I'm capable of doing :-)
- It's set up to copy the extracted avi file elsewhere
Modify as you require and drop a comment if you have anything to add to the script!