• Reset your password

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log in
Hjem
Linuxin 2025

Breadcrumb

  • Hjem
  • forums
  • Script, der selv udpakker RAR?

Hvad kan du med 100% sikkerhed sige, at du har stemt?

Valgmuligheder
Af prooi | 02.03.2009 12:10

Script, der selv udpakker RAR?

Programmering

Heysan.



Jeg kunne godt tænke mig at få lidt hjælp til at lave et script, der selv udpakker alle RAR-filer i et dir og dets undermapper, helt automatisk, og sletter rar-filerne igen bagefter.



Er der nogle der kan hjælpe mig på det område?

  • Log in to post comments

Kommentarer16

16 år 2 måneder siden

Permalink

Indsendt af ajbo den 2. marts 2009 kl. 12:27

Permalink

prooiAntal: 25Tilmeldt:10-01-2009User is onlineRe: Script

#!/bin/bash



rar e arkivnavn.rar

echo "password10"

exit 1



rar e arkivnavn.rar

echo "password11"

exit 1

  • Log in to post comments

16 år 2 måneder siden

Permalink

Indsendt af prooi den 2. marts 2009 kl. 12:29

Permalink

Re: Script, der selv udpakker RAR?

Den må du hellere forklare lidt?



Det jeg gerne vil have den til er, at den også selv finder filerne, så jeg ikke skal angive arkivnavne?

  • Log in to post comments

16 år 2 måneder siden

Permalink

Indsendt af einar.petersen den 2. marts 2009 kl. 14:11

Permalink

Substituer...

f.eks, * og ? er dine venner når du skriver scripts - Prøv at kigge på disse to dokumenter hvis du har interesse for scripting.



BASH Programming - Introduction HOW-TO by Mike G mikkey at dynamo.com.ar



http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html ( har et file renaming script hvor du kan se brugen af f.eks. * )



Advanced Bash-Scripting Guide An in-depth exploration of the art of shell scripting Mendel Cooper



http://tldp.org/LDP/abs/html/



Og så skal du kigge på recursive funktioner se. feks. http://www.tech-recipes.com/rx/732/recursive-grep/

  • Log in to post comments

16 år 2 måneder siden

Permalink

Indsendt af kop den 2. marts 2009 kl. 15:33

Permalink

Script, der selv udpakker RAR?

Prøv om dette kan hjælpe dig igang



#!/bin/bash



WORK_DIR=""



function rar_test

{

# Hvis der findes rar filer i angiver directory skrives de i filen $WORK_DIR/rar_test

find $1 -name \*.rar >$WORK_DIR/rar_test



while read line

do

# find hvilket directory skal rar filen pakkes ud

bn=$(basename $line)

ch_dir=${line/$bn/""}

# skift til directory hvor rar findes

cd $ch_dir

# brug af x istedet for e opretter evt directories i rar filen

unrar x -inul $line

# Hvordan endte udpakningen af rar fil

result=$?



# Vis resultat af udpakning

if [[ $result -eq 0 ]]; then

echo "$line er pakket ud"

rm $line

# giv besked om rar file er slettet eller ej.

if [[ -f $line ]]; then

echo "$line er ikke slettet"

else

echo "$line er slettet"

# næste echo er kun for at give en blank line mellem filerne

echo

fi

fi

done < $WORK_DIR/rar_test



# fjern midlertidig fil

rm $WORK_DIR/rar_test

}



function show_help {

clear

cat <<- HELP



Eksempel på brug



$0 [directory]



Hvor [directory] er det directory med rar filer der skal pakkes ud



HELP

}



function is_dir {

if [[ -d /dev/shm ]]; then

# Dette er er ram drev

WORK_DIR=/dev/shm

else

WORK_DIR=$(pwd)

fi

}



if [[ $# -lt 1 ]] ; then

show_help

else

clear

is_dir

rar_test $1

fi

  • Log in to post comments

16 år 2 måneder siden

Permalink

Indsendt af prooi den 2. marts 2009 kl. 17:04

Permalink

Re: Script, der selv udpakker RAR?

Hvad så når filendelserne ikke kun er .rar, men også .r0xx osv ?

  • Log in to post comments

16 år 2 måneder siden

Permalink

Indsendt af kop den 2. marts 2009 kl. 18:55

Permalink

Script, der selv udpakker RAR?

De bliver alle pakket ud som de skal, men til gengæld bliver kun .rar slettet :-(

  • Log in to post comments

16 år 2 måneder siden

Permalink

Indsendt af prooi den 11. marts 2009 kl. 20:24

Permalink

Re: Script, der selv udpakker RAR?

#4 Hvis jeg kører dit script direkte fra terminalen således:



prooi@prooi:~/Desktop$ sh rar.sh

rar.sh: 5: function: not found

rar.sh: 39: Bad substitution





hvor min scriptfil ser sådan ud:



#!/bin/bash



WORK_DIR="/data/rartest/"



function rar_test

{

# Hvis der findes rar filer i angiver directory skrives de i filen $WORK_DIR/rar_test

find $1 -name \*.rar >$WORK_DIR/rar_test



while read line

do

# find hvilket directory skal rar filen pakkes ud

bn=$(basename $line)

ch_dir=${line/$bn/""}

# skift til directory hvor rar findes

cd $ch_dir

# brug af x istedet for e opretter evt directories i rar filen

unrar x -inul $line

# Hvordan endte udpakningen af rar fil

result=$?



# Vis resultat af udpakning

if [[ $result -eq 0 ]]; then

echo "$line er pakket ud"

rm $line

# giv besked om rar file er slettet eller ej.

if [[ -f $line ]]; then

echo "$line er ikke slettet"

else

echo "$line er slettet"

# næste echo er kun for at give en blank line mellem filerne

echo

fi

fi

done < $WORK_DIR/rar_test



# fjern midlertidig fil

rm $WORK_DIR/rar_test

}





Får jeg den fejl som skrevet ovenover.



Why?

  • Log in to post comments

16 år 2 måneder siden

Permalink

Indsendt af kop den 12. marts 2009 kl. 08:15

Permalink

Re: Hvis jeg kører dit script direkte fra terminalen således:

Hvilken version af bash benytter du ? ( findes således: bash --version )



Du kan også prøve nedenstående

Gør rar.sh eksekverbar

eksekver rar.sh uden brug af sh ( rar.sh eller hvis rar.sh er i samme mappe ./rar.sh )

  • Log in to post comments

16 år 2 måneder siden

Permalink

Indsendt af prooi den 12. marts 2009 kl. 20:59

Permalink

Re: Script, der selv udpakker RAR?

Bruger version 3.2.39 af bash.



Gjorde filen ekserverbar, og kørte den med ./rar.sh, og det virkede egentlig fint - den fandt filen og skrev den til rar_test.



Så mangler jeg bare at få den udpakket også?

- For det gør den nemlig ikke.

  • Log in to post comments

16 år 2 måneder siden

Permalink

Indsendt af kop den 12. marts 2009 kl. 21:35

Permalink

Re: Script, der selv udpakker RAR?

Har du unrar installeret ?

  • Log in to post comments

16 år 2 måneder siden

Permalink

Indsendt af prooi den 12. marts 2009 kl. 21:49

Permalink

Re: Script, der selv udpakker RAR?

Havde jeg ikke, men det hjalp ikke at installere det - får stadig intet output i form af en fil.



Filerne jeg vil udpakke går fra:

xxx.r01 - xxx.r90 og ender med en xxx.rar



Problemet ligger i, at jeg ikke tror programmet opfatter .r01 filen som en rar fil, og derfor ikke udpakker den..



Alle rar-filerne er en stor rarfil der er splittet op i winrar.

  • Log in to post comments

16 år 2 måneder siden

Permalink

Indsendt af kop den 13. marts 2009 kl. 12:25

Permalink

Re: Script, der selv udpakker RAR?

Den rar og unrar jeg har adgang til er nyere end den du har benyttet.

den udgave jeg har navngiver på en anden måde end de ældre udgaver.

prøv at indsætte nedenstående kode i scriptet mellem disse 2 linier



# brug af x istedet for e opretter evt directories i rar filen

unrar x -inul $line





rar_split=$(echo $line | cut -f1 -d.)

if [[ -n $rar_split ]]; then

list=$(ls $rar_split.r*)

for i in $list

do

a=$(echo $i | cut -f1 -d.)

b=$(echo $i | cut -f2 -d.)

if [[ "$b" != "rar" ]]; then

b=${b//r/.part0}

b="$b.rar"

mv $i $a$b

fi

done

fi





edit:

$1 rettet til $line

  • Log in to post comments

16 år 2 måneder siden

Permalink

Indsendt af prooi den 14. marts 2009 kl. 04:32

Permalink

Re: Script, der selv udpakker RAR?

#12 Forstår ikke helt hvor jeg skal sætte det ind henne?



Lige nu ser koden sådan ud:



#!/bin/bash



WORK_DIR="/data/rartest/"



function rar_test

{

# Hvis der findes rar filer i angiver directory skrives de i filen $WORK_DIR/rar_test

find $1 -name \*.rar >$WORK_DIR/rar_test



while read line

do

# find hvilket directory skal rar filen pakkes ud

bn=$(basename $line)

ch_dir=${line/$bn/""}

# skift til directory hvor rar findes

cd $ch_dir

# brug af x istedet for e opretter evt directories i rar filen

rar_split=$(echo $line | cut -f1 -d.)

if [[ -n $rar_split ]]; then

list=$(ls $rar_split.r*)

for i in $list

do

a=$(echo $i | cut -f1 -d.)

b=$(echo $i | cut -f2 -d.)

if [[ "$b" != "rar" ]]; then

b=${b//r/.part0}

b="$b.rar"

mv $i $a$b

fi

done

fi

unrar x -inul $line

# Hvordan endte udpakningen af rar fil

result=$?



# Vis resultat af udpakning

if [[ $result -eq 0 ]]; then

echo "$line er pakket ud"

rm $line

# giv besked om rar file er slettet eller ej.

if [[ -f $line ]]; then

echo "$line er ikke slettet"

else

echo "$line er slettet"

# næste echo er kun for at give en blank line mellem filerne

echo

fi

fi

done < $WORK_DIR/rar_test



# fjern midlertidig fil

rm $WORK_DIR/rar_test

}





og det virker ihvertfald ikke.

  • Log in to post comments

16 år 2 måneder siden

Permalink

Indsendt af kop den 15. marts 2009 kl. 13:37

Permalink

Re: Script, der selv udpakker RAR?

Prøv om du kan finde en version af unrar der er så gammel at den kan udpakke *.r01 o.s.v.




  • Log in to post comments

16 år 2 måneder siden

Permalink

Indsendt af prooi den 18. marts 2009 kl. 21:52

Permalink

Re: Script, der selv udpakker RAR?

Har du evt et link til en sådan version?

  • Log in to post comments

16 år 2 måneder siden

Permalink

Indsendt af kop den 19. marts 2009 kl. 08:14

Permalink

Re: Script, der selv udpakker RAR?

Her er et par steder hvor du kan hente ældre versioner af unrar



http://rpm.pbone.net/index.php3?stat=3&limit=1&srodzaj=3&dl=40&search=u…



http://rpmforge.net/user/packages/unrar/



Vær dog opmærksom på at de ældre versione af unrar også kan være afhængig af andre ældre libraries.




  • Log in to post comments

Svar søges

Test 0
Den er go 0
Vil du have et sikrere og mere privat internet? Du skal blot installere Vivaldi-browseren med Proton VPN understøttelse! 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0

Seneste aktivitet

"Intet realistisk alternativ" - mig i r*ven 5
2 stk Jolla C2 sælges 2
Test 2
Det første forumindlæg efter installation af Forum-modulet 8
Vanilla OS 12
Nye forum-indlæg viser sig kun 1 gang 1
Vil alle forumindlæg vise sig to gange 1
Hjælp til remote terminal vindue? 3
PCLinuxOS 19
Kan ikke boote på installation 24
80-20 reglen 1
Skærmlys fader ud på min bærbare 8
32 bit distro på max 700mb der stadig understøttes 26
Har vi nogen Linux konsulenter i Slagelse området? 3
Virkelig 7
gnome-software? 3
Archer T2U AC600 Wireless Dual Band USB Adapter 26
En farverig APT 3.0 udgivelse imponerer med sine nye funktioner 2
Unix's fødsel 2
Linux Mint 13

Copyright © 2025 Company Name - All rights reserved

Developed & Designed by Alaa Haddad