DSIW

Alles was interessant ist... (Linux, Programmierung, Datenschutz, Medien, uvm.)

Universelles Entpacken von Paketen

| Comments

Natürlich geht es hier nicht um das Entpacken von analogen Paketen, zum Beispiel an Weihnachten. Es geht stattdessen um das Entpacken von Archiven, die mit unterschiedlichen Komprimierungsalgorithmen verkleinert wurden.

Das Programm, das dies vornehmen kann heißt unp (unpack). Es kann mit tar, zip, rar und deb-Archiven umgehen. Damit ist es nicht mehr nötig ein tar-Archiv über

1
tar -xvzf file.tar.gz

oder

1
tar -xvjf file.tar.bz

zu entpacken, sondern einfach über

1
unp file.tar.gz file.tar.bz

Das Entpacken von mehreren Archiven über *.tar[.gz|.bz] ist kein Problem.

Archivformate

In meinem Fall habe ich mir mal alle Formate anzeigen lassen, die ich mit dem Programm aufrufen kann. Dazu benutzt man den Befehl

1
unp -s

Ausgabe:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Known archive formats and tools:
7z:           p7zip oder p7zip-full
ace:          unace
ar,deb:       binutils
arj:          arj
bz2:          bzip2
cab:          cabextract
chm:          libchm-bin oder archmage
cpio,afio:    cpio oder afio
dat:          tnef
dms:          xdms
exe:          maybe orange or unzip or unrar or unarj or lha
gz:           gzip
hqx:          macutils
lha,lzh:      lha
lzma:         xz-utils oder lzma
lzo:          lzop
lzx:          unlzx
mbox:         formail und mpack
pmd:          ppmd
rar:          rar oder unrar oder unrar-free
rpm:          rpm2cpio und cpio
sea,sea.bin:  macutils
shar:         sharutils
tar:          tar
tar.bz2,tbz2: tar mit bzip2
tar.lzip:     tar mit lzip
tar.lzop,tzo: tar mit lzop
tar.xz,txz:   tar mit xz-utils
tar.z:        tar mit compress
tgz,tar.gz:   tar mit gzip
uu:           sharutils
xz:           xz-utils
zip,cbz,cbr,jar,war,ear,xpi,adf: unzip
zoo:          zoo

Hieran erkennt man auch die externen Programm, die zum Entpacken benutzt werden. Manche Archivformate sind mir sogar neu!

Leider gibt es keine Funktion, mit der auch in Archiven enthaltene Archive entpackt werden, sodass man ein rekusives Entpacken hätte. Dies hatte ich ausprobiert.

Desweiteren gibt es noch einen intelligenten Modus (Parameter: -U), der ein Archiv, wenn es mehrere Dateien enthält in einen Unterordner entpackt. Dieser Unterordner heißt gleich dem Archivnamen ohne Dateiendung.

Es lassen sich auch Programmparameter an die eigentlichen Entpackprogramme wie tar übergeben, indem man

1
unp <datei.tar> -- -C /tmp/

benutzt. Dabei sollte man allerdings darauf achten, dass man immer nur gleiche Archive angibt, sodass das dahinterstehende Entpackungsprogramm damit richtig umgehen kann. Nicht jedes Programm nutzt auch die gleichen Parameter, Geschweige denn die gleichen Reaktionen.

Fazit

Also im Großen und Ganzen ist das ein praktisches Tool, mit dem das Entpacken unterschiedlichster Pakete einfach vonstatten geht. Schön finde ich den intelligenten Modus, denn mir ist es manchmal passiert, dass sich in einem Archiv Dateien befanden, die in keinem übergeordneten Ordner lagen. Natürlich schaute ich nicht vorher in das Paket hinein und alle Dateien waren in meine aktuellen Ordner entpackt. Mühselig ist das ganze, wenn man sich in einem Verzeichnis befindet, in dem viele Dateien liegen. Das Suchen der gerade entpackten Daten ist dann fast nicht mehr zu schaffen.

Ich habe mich noch nicht wirklich an das Programm gewöhnt - ich nutze immernoch das manuelle tar -xvf, ich hoffe, das ändert sich bald. ;-)

Weitere Informationen

Comments