ich bin ein total noob, aber ich dachte, dieses Skript aus, um die folgenden Aktionen ausführen:Bash-Skript Optimierung Datei umbenennen
Ich habe einen Ordner „unrar“ genannt da drin sind Unterordner mit unbekanntem folder mit rar innen Datei. Nun trete ich ein unbekanntes Unterverzeichnis ein, finde rar und trenne es in unknownsubfolder. Danach finde ich die neue Datei und benenne sie mit dem unknownsubfoldername um. Jetzt schnappe ich mir die Datei und verschiebe sie nach ./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 \;
Dies funktioniert mit den meisten Dateien, aber in einigen Fällen tut es nicht
I * .rar in DIR und unrar es finden wollen. Die neue Datei. (. mkv | .avi | .mp4) sollte umbenannt werden in DIR (.mkv | .avi | .mp4) und nach ./unrar verschoben werden
Dies ist meine Dateistruktur.
./unrar/
- unknownsubfolder/
-file.rar
-file.r00
-....
- unknownsubfolder1/
- s01/
- file.rar
- file.r00
- ....
- s02/
- file.rar
- file.r00
- ....
- ....
Wenn case1, unrar "/unknownsubfolder/file.rar" und erhalten "x.mkv". die Datei von "x.mkv" auf "unknwonsubfolder.mkv" umbenannt und verschoben "./unrar/unknownsubfolder.mkv" (gleiche mit * .avi + * .mp4) == perfekt
wenn case2, In meinem Skript unknownsubfolder/s01/file.rar wird unrard, aber nicht in s01.mkv in unknwonsubfolder1.mkv umbenannt. (wenn es mehr wie s02 ist, s03, s04 ...) ich immer mit einer unknownsubfolder.mkv Datei in ./unrar am Ende) == falsche Ausgabe
Also ich denke, ich habe 3 Fragen
Wie bekomme ich den richtigen Namen für die Umbenennung der Datei? Oder wie gebe ich unknownsubfolder/s01 .... ein?
Gibt es eine Möglichkeit, ein Wort vom Fund auszuschließen? manchmal enthält "unknownsubfolder" einen anderen Ordner + Datei namens "sample (.mkv | .avi | .mp4)". Ich möchte das ausschließen, um zu verhindern, dass die Originaldatei mit der Beispieldatei überschrieben wird. passiert manchmal.
Ich bin sicher, dass ich einige der Code kombinieren kann, um es noch kürzer zu machen. Könnte jemand erklären, wie? So, wie ich die mkv, avi und mp4 in einer Linie kombiniere.
Grüßen, wombat
(EDIT: zum besseren Verständnis)
Verstehe ich richtig, in dem problematischen Fall haben Sie 30 Unterordner in unknownsubfolder statt einer RAR-Datei? Wie Sie es formuliert haben, könnte man meinen, dass es nur ein Ordner namens 'subfolder1-30' ist. Haben diese Unterordner immer noch nur eine einzige RAR-Datei? – nautical
Rechts, Unterordner unbekannt enthält bis zu 30 weitere Unterordner, die jeweils ein komprimiertes Video in rar enthalten. – wombat