Sida 1 av 1

unrar

Postat: 10 aug 2008, 11:07
av m_tullgren
Hej,

Finns där någon där ute som kan ge bra tips om unrar i linux?

Det är så att jag vill packa upp en massa filer som ligger i olika mappar i en mapp...
Detta går ju givetvis att göra med unrar i linux men är en smula ineffektivt då man antingen måste vara vid datorn och packa upp allt en och en eller packa upp alla filer på en gång.

Finns där något kommando i terminalen så man kan packa upp allt i en mapp även sånt som ligger i mappar under?
Eller något bra program tips....

Tacksam för hjälp!

Re: unrar

Postat: 10 aug 2008, 11:36
av webaake
Testa;
man unrar

så listas alla kommandon för unrar.

Kanske funkar unrar -r e /dina/mappar ?
e = extract
-r = rekursivt = "gå ner i alla mappar"

Re: unrar

Postat: 11 aug 2008, 09:57
av m_tullgren
Hej,

Tack för svar men får inte det att fungera

skriver; unrar -r -e /home/jag/temp/ /home/jag/klara

i temp katalogen ligger flera mappar med rar arkiv i sig

Re: unrar

Postat: 11 aug 2008, 10:55
av Konservburk
m_tullgren skrev:får inte det att fungera

skriver; unrar -r -e /home/jag/temp/ /home/jag/klara

i temp katalogen ligger flera mappar med rar arkiv i sig

Kod: Markera allt

yes no | unrar e -r ~/temp/\*.rar ~/klara/
yes no är för att den inte ska stanna och fråga om du vill ersätta dubletter.

Re: unrar

Postat: 11 aug 2008, 11:26
av dmz
rar e r *.r*
fungerar annars bra.

Re: unrar

Postat: 11 aug 2008, 11:45
av Konservburk
dmz skrev:rar e r *.r*
fungerar annars bra.
Nej och åter nej

Det där fungerar som bäst dåligt. Glöm aldrig att skydda * mot det onda skalet.

Re: unrar

Postat: 11 aug 2008, 13:08
av webaake
Obs: det är bara e inte -e !!

Alltså unrar e -r osv........

Lätt att missa.

Så:
unrar e -r /home/klara/*

borde funka.

Re: unrar

Postat: 11 aug 2008, 13:19
av Konservburk
webaake skrev:unrar e -r /home/klara/*

borde funka.
Nej, nej och ännu mera nej!
Jag vill inte se fler som struntar i att skydda * mot skalet. :(

Re: unrar

Postat: 11 aug 2008, 16:53
av dmz
Konservburk skrev:
webaake skrev:unrar e -r /home/klara/*

borde funka.
Nej, nej och ännu mera nej!
Jag vill inte se fler som struntar i att skydda * mot skalet. :(
huh?

Re: unrar

Postat: 11 aug 2008, 17:07
av m_tullgren
Tack för alla svar!

Fick det att fungera; yes no | unrar e -r /home/jag/Temp/\*.r* home/jag/klara/

Dock så skapade den en katalog i min home katalog med /home/klara/ men det är ju fin justeringar hehe.
Förstår inte riktigt vad Konservburk menar med att man skall skydda sig mot skalet?

Tack för hjälpen!

Re: unrar

Postat: 11 aug 2008, 17:24
av Konservburk
dmz skrev:huh?
När ni använder * på det där sättet så måste ni se till att skalet inte byter ut den mot något som råkar matcha fast ni inte tänkt er det. Säg t.ex. att det skulle finnas en fil som heter hur.man.ritar.txt i katalogen där du kör rar e -r *.r* ... då kommer du egentligen att köra rar e -r hur.man.ritar.txt (vilket jag antar att du inte vill). Att det öht fungerar ibland beror på att skalet som standard lämnar kvar * om ingenting matchar, vilket dock inte alls stämmer om man t.ex. har gjort inställningen:

Kod: Markera allt

shopt -s failglob
Det är med andra ord bäst att skriva \* eller "*" eller '*' istället.

Re: unrar

Postat: 11 aug 2008, 17:49
av dmz
Okay. Hur bör jag göra för att, till exempel, lista alla .nfo i mappen /mnt/Movies/NYTT, på det sättet?

Re: unrar

Postat: 11 aug 2008, 18:29
av Konservburk
dmz skrev:Okay. Hur bör jag göra för att, till exempel, lista alla .nfo i mappen /mnt/Movies/NYTT, på det sättet?
Det beror ju på vad du är ute efter. Vill du att skalet ska expandera *.nfo till alla .nfo-filer så ska du såklart inte använda \* (eller liknande)...

Kod: Markera allt

ls /mnt/Movies/NYTT/*.nfo
Men eftersom vi inte vet om det ens finns någon enda .nfo-fil i /mnt/Movies/NYTT/ så är det där egentligen ingen bra metod (den misslyckas helt om det inte finns någon .nfo-fil). Vi kommer dessutom att lista innehållet i alla kataloger som råkar sluta på .nfo (om vi inte använder ls -d istället). Man kan undvika * helt om man istället gör typ så här:

Kod: Markera allt

ls /mnt/Movies/NYTT/ | grep '\.nfo$'
Men sjäv föredrar jag nog att använda find i det här fallet:

Kod: Markera allt

find /mnt/Movies/NYTT/ -iname \*.nfo
Med -maxdepth 1 för att slippa underkataloger. Lägg märke till att jag åter igen har skyddat * från skalet.

Re: unrar

Postat: 11 aug 2008, 18:42
av dmz
Härligt, det var metoden med find jag var ute efter.

Nä'r jag kör detta:

Kod: Markera allt

find -iname \*.r*
Listas alltså alla filer som slutar på .r* , är det en korrekt användning?

dmz@fuck:/mnt/Movies/XViD$ find -iname \*.r* -exec rm {}
find: missing argument to `-exec'
dmz@fuck:/mnt/Movies/XViD$ find -iname \*.r* -exec rm;
find: missing argument to `-exec'
Hm, vad är det för argument som förväntas?

Re: unrar

Postat: 11 aug 2008, 19:01
av Konservburk
dmz skrev:Nä'r jag kör detta:

Kod: Markera allt

find -iname \*.r*
Listas alltså alla filer som slutar på .r* , är det en korrekt användning?
Det där blev nästan rätt. Om du har sista * fri så matchar skalet först efter filer som uttryckligen börjar med "*.r". Men det är ju å andra sidan inte speciellt ofta man hur en fil med "*" i själva namnet ;D

Borde ha varit:

Kod: Markera allt

find -iname \*.r\*
eller:

Kod: Markera allt

find -iname '*.r*'
Men om vi fortfarande pratar om rar så vill du nog egentligen göra så här:

Kod: Markera allt

find -iname '*.rar' -o -iname '*.r[0-9][0-9]' 
eller:

Kod: Markera allt

find -iregex '.*\.r\(ar\|[0-9][0-9]\)'
Annars hittar du ju precis allt som råkar ha .r någonstans i filnamnet.

Re: unrar

Postat: 11 aug 2008, 19:06
av dmz

Kod: Markera allt

find -iname \*.r\*
Inte i filnamnet väl? Du menar väl i filändelsen?

Vad jag är ute efter är att t.ex kunna ta bort alla gamla rar-filer från en mapp med undermappar, men fick inte till det med -exec.

Re: unrar

Postat: 11 aug 2008, 19:22
av Konservburk
dmz skrev:Inte i filnamnet väl? Du menar väl i filändelsen?
Filändelser är något som microsoft har hittat på, det existerar egentligen inte i linux. Du kan ha ju punkter precis var du vill i filnamnen. En matchnig mot *.r* gör ingen skillnad på första eller sista punkten och matchar såväl fil.rar som hur.radio.fungerar.txt, osv.
dmz skrev:Vad jag är ute efter är att t.ex kunna ta bort alla gamla rar-filer från en mapp med undermappar, men fick inte till det med -exec.

Kod: Markera allt

find -iregex '.*\.r\(ar\|[0-9][0-9]\)' -exec rm {} \;
Men du bör för säkerhets skull först köra utan -exec för att dubbelkolla så att ingenting har blivit fel.