Bash script renaming optimization file

I am a complete noob, but I understood this script to do the following:

I have a folder named "unrar", it has subfolders with an unknown folder name with a rar file inside. Now I enter the unknown folder, find the rar file and expand it into unknownsubfolder. After that, I will find a new file and rename it named unknownsubfolder. Now I grabbed the file and moved it to. / unrar.

#!/bin/bash

cd /home/user/unrar/

for dir in /home/user/unrar/*; 
    do (cd "$dir" && find -name "*.rar" -execdir unrar e -r '{}' \;); done

echo "$(tput setaf 2)-> unrar done!$(tput sgr0)" 

for dir in /home/user/unrar/*; 
do (cd "$dir" && find -name "*.mkv" -exec mv '{}' "${PWD##*\/}.mkv" \;);     done
for dir in /home/user/unrar/*; 
do (cd "$dir" && find -name "*.mp4" -exec mv '{}' "${PWD##*\/}.mp4" \;);     done
 for dir in /home/user/unrar/*; 
do (cd "$dir" && find -name "*.avi" -exec mv '{}' "${PWD##*\/}.avi" \;); done

cd /home/user/unrar
find -name "*.mkv" -exec mv '{}' /home/user/unrar \;
find -name "*.mp4" -exec mv '{}' /home/user/unrar \;
find -name "*.avi" -exec mv '{}' /home/user/unrar \;

This works fine with most files, but in some cases it doesn’t

I want to find * .rar in DIR and untie it. the new .mkv | .avi | .mp4 file should be renamed to DIR (.mkv | .avi | .mp4) and transferred to. / unrar

This is my philology.

./unrar/
    - unknownsubfolder/
        -file.rar
        -file.r00
        -....
    - unknownsubfolder1/
        - s01/
            - file.rar
            - file.r00
            - ....
        - s02/
            - file.rar
            - file.r00
            - ....
        - ....

case1, unrar "/unknownsubfolder/file.rar" "x.mkv". "x.mkv" "unknwonsubfolder.mkv" "./unrar/unknownsubfolder.mkv" ( *.avi + *.mp4) == perfekt

case2, script unknownsubfolder/s01/file.rar , s01.mkv, unknwonsubfolder1.mkv. ( s02, s03, s04...), unknownsubfolder.mkv . /unrar ) ==

, 3

DIR ? unknownsubfolder/s01....?

? "unknownsubfolder" + "sample (.mkv |.avi |.mp4)". , . .

, , . - , ? , mkv, avi mp4 .

,

(EDIT: )

+4
1

UPDATE:

unrar. unrar, gunzip , unrar. , unrar . , - . .

, unrar :

#!/bin/bash

path="$1"
omit="$2"

while read f;do
        unrar e -r "${f}" "${f%/*}" > /dev/null
done < <(find "${path}" -type d -name "${omit}" -prune -o -type f -print)

while read f;do
        new="${f%/*}"
        new="${new##*/}"
        mv "${f}" "${path}/${new}"
done < <(find "${path}" -type d -name "${omit}" -prune -o -type f -a \! -name '*.rar' -print )

script, , rename-script ( ),

./rename-script /path/to/unrar omitfolder

, script cd. unrar , . OP /home/user/unrar. omitfolder , , . , OP sample.

./rename-script /home/user/unrar sample

OP bash read-builtin , , while -loop , find f.

+2

All Articles