Script para mover o descomprimir archivos (rtorrent cuando termine el script)

Script para mover o descomprimir archivos (rtorrent cuando termine el script)

El concepto

Así que he estado luchando por un tiempo con un script que se ejecutará cuando rtorrent haya finalizado la descarga. El script debería comprobar el tercer argumento de rtorrent y actuar en consecuencia.

.rtorrent.rc:

system.method.set_key = event.download.finished,unrar_move_files,"execute={/home/holmen/script/testrt.sh,$d.get_base_path=,$d.get_name=,$d.get_custom1=}"

El guión se ve así:

#!/bin/bash
# First, copy the downloaded material to the storage drive
# then unpack the files (if the unrar returned successful)
# lastly remove the rar files with rm -rfv command

hdfilm1=/media/store1/HD-film
hdfilm2=/media/store2/HD-film
download=/media/store3/Download

# Copy the downloaded material to correct storage drive
rsync -r --info=progress2 "$download"/"$2" "$3"

if [ "$3" = "$hdfilm1" ] || [ "$3" = "$hdfilm2" ]; then
        # Check folders and subfolders of the downloaded material
        while IFS= read -r dir; do
                # Find and unpack archive files
                if [ "$(find $dir | egrep -i '\.r00|\.001|part01\.rar|part001\.rar|subs\.rar')" ]; then
                        rarFile=`ls $dir | egrep -i '\.r00|\.001|part01\.rar|part001\.rar|subs\.rar'`;
                        searchPath="$dir/$rarFile"
                        yes no | nice -n 15 unrar x -o+ "$searchPath" "$dir"
                        remFile=`ls $dir | egrep -i '\.(rar|sfv|r([0-9]{2}))$'`;
                        remPath="$dir/$remFile"
                        rm -rfv $remPath
                fi
        done < <(find "$3"/"$2" -type d)
fi

Esto funciona básicamente, pero tengo problemas al intentar eliminar los archivos comprimidos (después de descomprimirlos). Al agregar un script de eliminación en el whilebucle, el script simplemente elimina los archivos en la subcarpeta específica que se encuentra en ese momento.

El script se descomprime:

/media/store1/HD-film/Movie.folder/*.rar
/media/store1/HD-film/Movie.folder/Subs/*.rar

pero solo elimina los archivos rar en esta carpeta

/media/store1/HD-film/Movie.folder/Subs/

¿Cómo puedo solucionarlo para que mi secuencia de comandos elimine los archivos comprimidos también en la carpeta principal?

Editar:Intenté poner el rmcomando después del comando unrar &&pero el resultado es el mismo.

if [ "$(find $dir | egrep -i '\.r00|\.001|part01\.rar|part001\.rar|subs\.rar')" ]; then
     rarFile=`ls $dir | egrep -i '\.r00|\.001|part01\.rar|part001\.rar|subs\.rar'`;
     searchPath="$dir/$rarFile"
     remFile=`ls $dir | egrep -i '\.(rar|sfv|r([0-9]{2}))$'`;
     remove="$dir/$remFile"
     yes no | nice -n 15 unrar x -o+ "$searchPath" "$dir" && rm -rfv "$remove"
fi

Respuesta1

Encontré una solución para mi problema con este script.extraordinario. Lo he implementado en mi script.

#!/bin/bash

# Variables
hdfilm1=/media/store1/HD-film
hdfilm2=/media/store2/HD-film
tvshow1=/media/store0/Serier
tvshow2=/media/store2/Serier
download=/media/store3/Download

# Copy the downloaded material to correct storage drive
rsync -r --info=progress2 "$download"/"$2" "$3"

if [ "$3" = "$hdfilm1" ] || [ "$3" = "$hdfilm2" ] || [ "$3" = "$tvshow1" ] || [ "$3" = "$tvshow2" ]; then
        /home/holmen/script/unrarall --clean=rar,proof_folders,sample_folders,sample_videos,empty_folders "$3"/"$2"
fi

información relacionada