Modifiering av mina unrar och del scripts

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
zeezam
Inlägg: 10
Blev medlem: 06 aug 2008, 17:01
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

Modifiering av mina unrar och del scripts

Inlägg av zeezam »

Såhär ser det ut nu, så simpelt som det kan bli.

unrar.sh

Kod: Markera allt

find -name *.rar -exec unrar x -y -r -v {} \; && find -name *mkv >> list.log
del.sh

Kod: Markera allt

find -name *.nfo -exec rm -fv {} \;
find -name *.sfv -exec rm -fv {} \;
find -name *.rar -exec rm -fv {} \;
find -name *.r?? -exec rm -fv {} \;
Nu så går dessa säkert dessa script göras mycket snyggare.
Det jag skulle vilja om man kuna baka ihop flera filer under under samma find -name sökning samt om det går att outputa all data som sökningen gör till en log fil istället för att köra find -name *mkv >> list.log.

Tack på förhand.
palle-kuling
Inlägg: 466
Blev medlem: 16 apr 2008, 21:54
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS

Re: Modifiering av mina unrar och del scripts

Inlägg av palle-kuling »

Jag ser ingen anledning till att skriva någon mer avancerad algoritm än vad du redan har gjort själv? Funkar det inte bra?
Vill du använda någon form av "villkor" i ditt script?

Om scriptet var på över 10 rader, samt att du behövde mer fin kontroll över händelseförloppet så kanske det skulle vara en idé.
Som dom brukar säga, KISS is best (keep it simple stupid).
MER MAKT TILL MIG! JAG BESTÄMMER!
David Andersson
Inlägg: 1269
Blev medlem: 15 dec 2007, 03:20
OS: Xubuntu

Re: Modifiering av mina unrar och del scripts

Inlägg av David Andersson »

zeezam skrev:Nu så går dessa säkert dessa script göras mycket snyggare.
Nä, det går faktiskt inte. De är rätt snygga redan.

Men jag skulle vilja ta bort ett par buggar.

Det kräver först ett resonemang om vad scripten är tänkta att göra och hur de är tänkta att användas. Om unrar.sh är tänkt att användas a) i en katalog där det finns en rar-filer eller b) i en katalog där det inte finns rar-filer men den ska hitta och operera på rar-filer i underkataloger. Oavsett så är det bra om filnamns-mönster (såna med * och ?) avsedda för -name-argument till find inte expanderas av bash. Därför ska de omges av "" eller ''.

unrar.sh
find -name "*.rar" -exec unrar x -y -r -v {} \; && find -name "*mkv" >> list.log

Byt ut r?? till r[0-9][0-9] för att inte av misstag ta bort andra filer som råkar ha r i samma position. Antar att det bara är filer som matchar r[0-9][0-9] du vill ta bort:

del.sh
find -name "*.nfo" -exec rm -fv {} \;
find -name "*.sfv" -exec rm -fv {} \;
find -name "*.rar" -exec rm -fv {} \;
find -name "*.r[0-9][0-9]" -exec rm -fv {} \;
zeezam
Inlägg: 10
Blev medlem: 06 aug 2008, 17:01
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

Re: Modifiering av mina unrar och del scripts

Inlägg av zeezam »

Tack för svaren.

Det enda som kvarstår är borttagning av mappar som ligger i underkataloger.
Borde gå att göra en liknande find -name rad fast som söker upp kataloger av ett visst namn och tar bort rekursivt.
2
Sedan så verkar de uppackade filerna hamna i samma mapp som scriptet körs ifrån, kanske för att jag använda "unrar e" istället för "unrar x".

Edit: Fixat med find -typ -d och -iname.

Det jag sedan vilja är en sökning av mappar som innehåller en viss fil och sedan flytta dessa mappar rekursivt till en annan mapp.
Senast redigerad av 1 zeezam, redigerad totalt 29 gånger.
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Modifiering av mina unrar och del scripts

Inlägg av dmz »

zeezam skrev:Tack för svaren.

Det enda som kvarstår är borttagning av mappar som ligger i underkataloger.
Borde gå att göra en liknande find -name rad fast som söker upp kataloger av ett visst namn och tar bort rekursivt.
2
Sedan så verkar de uppackade filerna hamna i samma mapp som scriptet körs ifrån, kanske för att jag använda "unrar e" istället för "unrar x".

Kod: Markera allt

find -name "*.rar" -exec unrar x -y -r -v {} /mnt/TV/temp \; && find -name "*mkv" >> list.log
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Modifiering av mina unrar och del scripts

Inlägg av dmz »

När jag kör;

Kod: Markera allt

find -name "*.r[0-9][0-9]" -exec unrar x -vy {} /mnt/XViD/temp \;
Hamnar jag efter unrar i en fin liten loop;

Kod: Markera allt

/mnt/XViD/temp/coa-bdr5-xvid.avi already exists. Overwrite it ?
[Y]es, [N]o, [A]ll, n[E]ver, [R]ename, [Q]uit ^C
User break
Vad är fel i ovanstående? Det verkar inte som att den efter att ha utfört aktionen 1 gång breakear.
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
KiviE
Inlägg: 2157
Blev medlem: 25 okt 2007, 14:00
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Luleå

Re: Modifiering av mina unrar och del scripts

Inlägg av KiviE »

dmz skrev:När jag kör;

Kod: Markera allt

find -name "*.r[0-9][0-9]" -exec unrar x -vy {} /mnt/XViD/temp \;
Hamnar jag efter unrar i en fin liten loop;

Kod: Markera allt

/mnt/XViD/temp/coa-bdr5-xvid.avi already exists. Overwrite it ?
[Y]es, [N]o, [A]ll, n[E]ver, [R]ename, [Q]uit ^C
User break
Vad är fel i ovanstående? Det verkar inte som att den efter att ha utfört aktionen 1 gång breakear.
Den hittar väl först r00 sen r01, r02 osv...
zeezam
Inlägg: 10
Blev medlem: 06 aug 2008, 17:01
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

Re: Modifiering av mina unrar och del scripts

Inlägg av zeezam »

dmz skrev:
zeezam skrev:Tack för svaren.

Det enda som kvarstår är borttagning av mappar som ligger i underkataloger.
Borde gå att göra en liknande find -name rad fast som söker upp kataloger av ett visst namn och tar bort rekursivt.
2
Sedan så verkar de uppackade filerna hamna i samma mapp som scriptet körs ifrån, kanske för att jag använda "unrar e" istället för "unrar x".

Kod: Markera allt

find -name "*.rar" -exec unrar x -y -r -v {} /mnt/TV/temp \; && find -name "*mkv" >> list.log
Ok, då får man inte med mappen utan bara mkv filen.
zeezam
Inlägg: 10
Blev medlem: 06 aug 2008, 17:01
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

Re: Modifiering av mina unrar och del scripts

Inlägg av zeezam »

KiviE skrev:
dmz skrev:När jag kör;

Kod: Markera allt

find -name "*.r[0-9][0-9]" -exec unrar x -vy {} /mnt/XViD/temp \;
Hamnar jag efter unrar i en fin liten loop;

Kod: Markera allt

/mnt/XViD/temp/coa-bdr5-xvid.avi already exists. Overwrite it ?
[Y]es, [N]o, [A]ll, n[E]ver, [R]ename, [Q]uit ^C
User break
Vad är fel i ovanstående? Det verkar inte som att den efter att ha utfört aktionen 1 gång breakear.
Den hittar väl först r00 sen r01, r02 osv...
Du behöver skriva unrar x -v -y
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Modifiering av mina unrar och del scripts

Inlägg av dmz »

KiviE skrev:
dmz skrev:När jag kör;

Kod: Markera allt

find -name "*.r[0-9][0-9]" -exec unrar x -vy {} /mnt/XViD/temp \;
Hamnar jag efter unrar i en fin liten loop;

Kod: Markera allt

/mnt/XViD/temp/coa-bdr5-xvid.avi already exists. Overwrite it ?
[Y]es, [N]o, [A]ll, n[E]ver, [R]ename, [Q]uit ^C
User break
Vad är fel i ovanstående? Det verkar inte som att den efter att ha utfört aktionen 1 gång breakear.
Den hittar väl först r00 sen r01, r02 osv...
Mjo, tänkte inte på att unrar/rar packar upp rubbet oavsett vilken fil man väljer.
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Modifiering av mina unrar och del scripts

Inlägg av dmz »

zeezam skrev:
KiviE skrev:
dmz skrev:När jag kör;

Kod: Markera allt

find -name "*.r[0-9][0-9]" -exec unrar x -vy {} /mnt/XViD/temp \;
Hamnar jag efter unrar i en fin liten loop;

Kod: Markera allt

/mnt/XViD/temp/coa-bdr5-xvid.avi already exists. Overwrite it ?
[Y]es, [N]o, [A]ll, n[E]ver, [R]ename, [Q]uit ^C
User break
Vad är fel i ovanstående? Det verkar inte som att den efter att ha utfört aktionen 1 gång breakear.
Den hittar väl först r00 sen r01, r02 osv...
Du behöver skriva unrar x -v -y
Då får jag en ännu mer infinite loop; Jag får inget meddelande om att filen existerar utan den skrivs över automatiskt, och fortsätter att packa upp samma filer i alla evighet.
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Modifiering av mina unrar och del scripts

Inlägg av dmz »

Om jag istället för '*.r[0-9][0-9]' enbart använder '*.rar* kommer jag runt problemet, delvis; Men det är inte failsafe eftersom det i vissa fall är flertalet arkiv som heter t.ex blabla-part001.rar, blabla-part002.rar, ibland finns ingen *.rar alls, utan det finns bara *.r01 etc. Hur löser man detta så att det blir så failsafe som möjligt?
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
zeezam
Inlägg: 10
Blev medlem: 06 aug 2008, 17:01
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

Re: Modifiering av mina unrar och del scripts

Inlägg av zeezam »

Varför packa upp part filerna när du har en .rar fil?
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Modifiering av mina unrar och del scripts

Inlägg av dmz »

zeezam skrev:Varför packa upp part filerna när du har en .rar fil?
Men ibland finns det ju som sagt ingen *.rar
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
David Andersson
Inlägg: 1269
Blev medlem: 15 dec 2007, 03:20
OS: Xubuntu

Re: Modifiering av mina unrar och del scripts

Inlägg av David Andersson »

dmz skrev:Om jag istället för '*.r[0-9][0-9]' enbart använder '*.rar* kommer jag runt problemet, delvis; Men det är inte failsafe eftersom det i vissa fall är flertalet arkiv som heter t.ex blabla-part001.rar, blabla-part002.rar, ibland finns ingen *.rar alls, utan det finns bara *.r01 etc. Hur löser man detta så att det blir så failsafe som möjligt?
Det här känner jag igen ... hum hum ... sök part002.rar ... hum hum ... japp. I den här tråden finns tips om hur hitta bara första parten, men inte andra parten, men fortfarande onumrerade rar-filer: http://ubuntu-se.org/phpBB3/viewtopic.php?f=67&t=26376 Oj, 188 inlägg. Du får leta lite.
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Modifiering av mina unrar och del scripts

Inlägg av dmz »

David Andersson skrev:
dmz skrev:Om jag istället för '*.r[0-9][0-9]' enbart använder '*.rar* kommer jag runt problemet, delvis; Men det är inte failsafe eftersom det i vissa fall är flertalet arkiv som heter t.ex blabla-part001.rar, blabla-part002.rar, ibland finns ingen *.rar alls, utan det finns bara *.r01 etc. Hur löser man detta så att det blir så failsafe som möjligt?
Det här känner jag igen ... hum hum ... sök part002.rar ... hum hum ... japp. I den här tråden finns tips om hur hitta bara första parten, men inte andra parten, men fortfarande onumrerade rar-filer: http://ubuntu-se.org/phpBB3/viewtopic.php?f=67&t=26376 Oj, 188 inlägg. Du får leta lite.
Väntade just på dig. Ska kika. :)
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
zeezam
Inlägg: 10
Blev medlem: 06 aug 2008, 17:01
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

Re: Modifiering av mina unrar och del scripts

Inlägg av zeezam »

Även fast jag använder unrar x så packar den upp filerna utanför katalogerna (därifrån jag kör unrar scriptet).
Behöver man lägga till en variabel eller så i scriptet för att den ska packa upp filerna i mapparna istället?
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Modifiering av mina unrar och del scripts

Inlägg av dmz »

zeezam skrev:Även fast jag använder unrar x så packar den upp filerna utanför katalogerna (därifrån jag kör unrar scriptet).
Behöver man lägga till en variabel eller så i scriptet för att den ska packa upp filerna i mapparna istället?

Kod: Markera allt

unrar e 
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Urme
Inlägg: 65
Blev medlem: 29 aug 2008, 23:00
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

Re: Modifiering av mina unrar och del scripts

Inlägg av Urme »

Du kanske kan få lite hjälp av scriptet jag precis har skrivit, kör det just nu på runt ~50 mappar. Jag har kommenterat scriptet nedan.
Den flyttar dock inga filer etc.

Scriptet går säkert att kapa ner en hel del och göra snyggare.

Kod: Markera allt

STARTDIR="$PWD"; # Sätter startdir till nuvarande directory.
find . -type d | while read dir #hittar alla kataloger + subkataloger
do
        cd "$STARTDIR/$dir"; #Går in i första katalogen.
        echo '-Current movie:' "$dir"; #skriver ut sökvägen.
        find . -iregex '.*\.rar' -and -not -iregex '.*\.part[0-9]+.rar' -or -iregex '.*\.part0*1\.rar' -maxdepth 1 | while read RAR #Hittar alla filer som slutar på .rar, men exkluderar alla filer som heter part*.rar, förutom part0*1.rar. Den kollar bara första nivån, går inte igenom subkataloger här utan det kommer den göra i nästa "huvudloop".
        do (

           echo '---Unrar start:' "$PWD"/"${RAR##*/}" #Skriver ut vilken fil den packar upp
           unrar e -inul -o+  "${RAR##*/}" #Packar upp filen utan att skriva ut någonting, + skriver automatiskt över om filen redan existerar.
           echo '---Unrar finished:' "$PWD"/"${RAR##*/}" #Skriver ut när den är klar.
        ) done

        COUNTRARFILES=0; #En kontrollvariabel som sätts till 1 om rarfil hittas
        find . -iregex '.*\.rar' -or -iregex '.*\.r[0-9]+' -maxdepth 1 | while read RMRAR #Söker efter alla .rar och .r01, r02 etc, tar bara bort filer i den nuvarande katalogen, därav -maxdepth 1.
        do {
                if [ "$COUNTRARFILES" = 0 ]; then #Om variabeln är 0 skriver den ut nästa rad
                        echo '-----Removing all found rarfiles in' $PWD;
                        COUNTRARFILES=1; #Sätter variabeln till 1 så ovanstående rad inte skrivs ut hela tiden
                fi
                rm "${RMRAR##*/}" #Tar bort rar filen.
        } done
        cd "$STARTDIR"; # Går tillbaka till startkatalogen, egentligen onödigt.
done
zeezam
Inlägg: 10
Blev medlem: 06 aug 2008, 17:01
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

Re: Modifiering av mina unrar och del scripts

Inlägg av zeezam »

Fungerade bra. Skulle vilja göra om det lite.

Vad står "${RAR##*/}" för? rar variabeln men vad gör ##*/ i sammanhanget?
Skriv svar

Återgå till "Terminalforum"