pinguino
Anmeldungsdatum: 6. Februar 2007
Beiträge: 732
Wohnort: BW
|
Hallo Zusammen, ich versuche mehrere RAR-Dateien gleichzeitig per Konsole zu entpacken. Ist das möglich? wenn ja, wie lautet der Befehl genau auf der Konsole?. Ich konnte beim rarlab.com keine Antwort finden und auch nicht unter den Manuals im Ubuntu. Danke im voraus.
|
pinguino
(Themenstarter)
Anmeldungsdatum: 6. Februar 2007
Beiträge: 732
Wohnort: BW
|
also, ich habe eine Lösung halbwegs gefunden, um alle Dateien gleichzeitig zu entpacken: unrar x \ *.rar Damit werden aber alle RAR-Archive entpackt aber wie ist das, wenn man 2 oder 5 Archiven per Name entpacken moechte?
|
Treuepunkt
Anmeldungsdatum: 25. November 2006
Beiträge: 58
|
Hallo, soweit ich weiss nimmt unrar immer nur eine Datei als Archiv an. ich stricke meistens eine for-Schleife drumrum. Also etwa
for i in [abc]*rar; do unrar x "$i"; done entpackt alle Archive, die mit a, b oder c anfangen. Oder
for i in *part1.rar; do unrar x "$i"; done für mehrteilige Archive.
Grüße TP
|
schiggy
Anmeldungsdatum: 11. August 2007
Beiträge: 107
|
Hallo ... wie ist das dann mit einem standardpasswort, dass für alle datein gillt? lg
schiggy Edit: for i in *part1.rar; do unrar x -ppassword -o+ "$i"; done
|
Schnumulus
Anmeldungsdatum: 21. April 2014
Beiträge: 12
|
Da der Thread schon meine Frage zur Hälfte beantwortet, stelle ich meine Frage einfach hier, anstatt ein neues Thema zu starten. Ich möchte wie der TS mehrere gesplittete .rar-Dateien entpacken, doch sollen die entpackten Dateien anschließend in meinem Home-Ordner gespeichert werden. Wie muss ich die Funktion dafür anpassen? Müssen die Archive eigentlich alle im selben Verzeichnis liegen, damit es funktioniert?
|
12D-Atom
Anmeldungsdatum: 16. April 2014
Beiträge: 26
|
Hallo Schumulus, Um den entpackten Ordner nach dem entpacken ins Home Verzeichnis zu verschieben, könntest du
die Funktion folgendermaßen verändern:
| for i in *part1.rar; do unrar x "$i"; done mv ./* $HOME/OutputFolder;rm *.rar;
|
Zu beachten ist hierbei, dass das ein sehr umständliches Konstrukt ist, da alle Dateien in einen Outputfolder
verschoben werden, und dann nur die .rar Dateien gelöscht werden.Das habe ich einerseits so geschrieben,
damit vorhandene .rar Dateien im Home Verzeichnis verschont werden, andererseits weil ich grade keine Zeit
für Genialität habe.Nachteil dieser Methode ist, dass die .rar Dateien komplett weg sind.Das kannst du ausgleichen,
indem du das "mv" durch "cp" ersetzt, wodurch die originalen .rar Dateien erhalten bleiben.
Ich hoffe, ich konnte dein Problem lösen und habe dich nicht mit dieser übermäßig ausführlichen antwort
beleidigt/erschlagen/zu Tode gelangweilt. Tschau,12D-Atom
|
Schnumulus
Anmeldungsdatum: 21. April 2014
Beiträge: 12
|
@12D-Atom: Vielen Dank für deine Antwort. Ich bin noch relativ neu in der Linux-Welt und kenne mich noch nicht so gut mit den Terminal-Befehlen aus, von daher sind ausführliche Antworten genau das, was ich brauchen kann. Grüße Schnumulus
|
un4given
Anmeldungsdatum: 15. Mai 2022
Beiträge: 3
|
Moin,
auch ich möchte keinen neuen Thread aufmachen, denn dieser ist genau, was ich suche! Gerne würde ich noch verstehen wie ich die.rar Dateien nach dem Entpacken löschen kann, nur die wo er schon Entpackt hat natürlich.
Bei mir liegen alle Dateien in einem Ordner. for f in *part1.rar; do unrar x -pmeinpass -o+ "$f" && rm $(basename "$f" ar)[a0-9][r0-9]; done Löscht immer nur das "part1.rar" Archive. z. B. part 2-3-4 bleiben. Wie bekomme ich das hin, ohne alle Parts zu entfernen? for f in *part1.rar; do unrar x -pmeinpass -o+ "$f" && rm *.rar; done. .... hat alles gelöscht nach dem 1. Entpacken. Danke für Vorschläge
|
un4given
Anmeldungsdatum: 15. Mai 2022
Beiträge: 3
|
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11176
Wohnort: München
|
Verstehe ich das richtig, dass du z.B. sowas hast:
foo.part1.rar
foo.part2.rar
foo.part3.rar
foo.part4.rar
blah.part1.rar
blah.part2.rar
blah.part3.rar
blah.part4.rar Jetzt willst du den Inhalt von foo.part*.rar auspacken und anschließend die dazugehörigen Dateien löschen, aber blah.part*.rar nicht anfassen, bis es ebenfalls entpackt wurde?
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | #!/usr/bin/env bash
extract_and_delete () {
local filename="$1"
local password="$2"
local name_part="${filename%.*}"
local name="${name_part%.*}"
unrar x -p"$password" -o+ "$filename" && find ./ -type f -name "${name}.[^.]*.rar" -delete
}
for f in *part1.rar
do
extract_and_delete "$f" "meinpass"
done
|
|
un4given
Anmeldungsdatum: 15. Mai 2022
Beiträge: 3
|
Ja, ganz genau das war der Plan. Leider bin ich noch zu arg Laie. Wo kann ich nachlesen, wie ich das, was du schreibst, in einen Befehl bekomme?
|
no-hassle
Anmeldungsdatum: 7. Juni 2022
Beiträge: 1
|
seahawk1986 schrieb: Verstehe ich das richtig, dass du z.B. sowas hast:
foo.part1.rar
foo.part2.rar
foo.part3.rar
foo.part4.rar
blah.part1.rar
blah.part2.rar
blah.part3.rar
blah.part4.rar Jetzt willst du den Inhalt von foo.part*.rar auspacken und anschließend die dazugehörigen Dateien löschen, aber blah.part*.rar nicht anfassen, bis es ebenfalls entpackt wurde?
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | #!/usr/bin/env bash
extract_and_delete () {
local filename="$1"
local password="$2"
local name_part="${filename%.*}"
local name="${name_part%.*}"
unrar x -p"$password" -o+ "$filename" && find ./ -type f -name "${name}.[^.]*.rar" -delete
}
for f in *part1.rar
do
extract_and_delete "$f" "meinpass"
done
|
# ????? muss das nicht for f in *part?.rar oder *part*.rar heißen ### ????
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11176
Wohnort: München
|
Soweit ich das verstanden habe, sucht sich unrar die weiteren Teile des Archivs automatisch zusammen, daher reicht es in einer Schleife über den jeweils ersten Teil pro Archiv zu laufen.
|