Advertisement
doc_gonzo

Auto Entpacker Bash

Mar 26th, 2021
1,006
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.23 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Was dieses Script macht:
  4. # Archive nach dem Downloaden entpacken,
  5. # Dateitypen aus Unterverzeichnissen nach
  6. # Ordnernamen umbennen und ins übergeordnete Verz. verschieben
  7. # Bsp: vs-am.wilden.fluss.1080p.rar-r50
  8. # -> Die Datei .rar entpacken, danach die entpackte Datei nach Ordnernamen umbennen und ins ../ verschieben.
  9. # Ergebis: Dateiname: Am.wilden.Fluss.1994.German.DL.1080p.BluRay.x264.iNTERNAL-VideoStar.mkv
  10. # Rest wie sample und .nfo wird gelöscht
  11. #
  12. # doc_gonzo mai 2015
  13. #
  14. #
  15. # input = Dateityp in variable ext
  16.  
  17. # Farben:
  18. cred='\e[1;31m'
  19. cgreen='\033[1;32m'
  20. cblue='\033[36m'
  21. cdefault='\033[0m'
  22.  
  23. echo -e "Welcher DATEITYP soll bearbeiten werden? Standard ist "$cgreen"mkv"$cdefault
  24. read -p "avi|mp4|mkv: " ext
  25. case "$ext" in
  26. "")
  27.     ext=mkv
  28.     ;;
  29. avi | mp4 | mkv)
  30.     type=$(echo "*.$ext")
  31.     ;;
  32. *)
  33.     echo "Falscher DATEITYP!"
  34.     exit 1
  35.     ;;
  36. esac
  37. # dateimaske:
  38. # ext=rar
  39. type=$(echo "*.$ext")
  40. echo
  41. echo -e "DATEITYP ist $cblue$type"$cdefault
  42. echo
  43.  
  44. # Rechte holen von Verzeichnissen und Dateien
  45. find . -type d -exec chmod 755 {} +
  46. find . -type f -exec chmod 644 {} +
  47.  
  48. # ordner einlesen
  49. IFS=$'\n'
  50. folder=($(find -maxdepth 1 -type d))
  51. echo -e "Anzahl der gefundenen Ordner $cblue${#folder[@]}"$cdefault
  52. # Anzahl der zu entpackenden Dateien ist mit ".." also eins abziehen
  53. unset folder[0]
  54. echo "Benenne $ext-Dateien um...."
  55. echo
  56.  
  57. for i in "${folder[@]}"; do
  58.     cd "${i:2}"
  59.     filecount=($(find ./ -maxdepth 1 -type f -name rar | wc -l))
  60.     if [ $filecount -gt 1 ]; then
  61.         echo -e $cred"Fehler: mehr als eine $ext-Datei in "$i" gefunden"
  62.         printf $cdefault
  63.         cd ..
  64.     else
  65.         printf $cdefault
  66.         if [ "$(find -type f | grep -m 1 rar)" ]; then
  67.             for a in *.rar; do
  68.                 echo -e $cblue"Es wird entpackt: "$a""$cdefault""
  69.                 unrar x -o- "$a" 2>/dev/null | grep "All OK"
  70.                 printf $cgreen
  71.                 mv -v *.$ext ../"${i:2}".$ext
  72.             done
  73.         fi
  74.         printf $cdefault
  75.         cd ..
  76.         rm -f -R "${i:2}"
  77.         # Verzeichnis nach erfolgreichem entpacken löschen;
  78.         # kann man muss man nicht
  79.     fi
  80. done
  81. echo -e "$default----------------------------------------------------"
  82.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement