Wer kennt das nicht, man lädt eine Datei herunter und möchte die danach auf der Konsole entpacken. Doch wie war noch gleich der Befehl um ein *.tar.gz oder *.bzip Archiv zu entpacken ? Ich jedenfalls stehe immer wieder vor dem Problem und schaue mir dann meine alten Artikel an oder befrage das Suchmaschinenorakel. Doch es gibt kleine Hilfen. Perl-Skripte wie unp oder atool brauchen keine extra komplizierten Parameter zum entpacken. Als Voraussetzung muss Perl gegeben sein und die eigentlichen Entpacker Programme wie tar, bzip, gzip, usw. installiert sein.
So geht es leichter mit dem entpacken
Statt
tar –xzf Datei.tar.gz
muss für unp nur
unp Datei.tgz
bzw. für atool ein kleiner Parameter wie z.B.
atool –x Datei.tgz
angegeben werden. Die Tools erkennen dabei selbständig um was es sich für ein Format handelt.
Ich finde so etwas sollte unter Linux zum Standard gehören. Gerade Anfänger sind Konsolenscheu. Diese möchten sich dann nicht auch noch irgendwelche Parameter merken, nur um eine einfache Aufgabe durchzuführen.
Bei mir gehört unp ab jetzt zum Standard. Auch wenn das letzte Release (2002) schon wesentlich länger zurückliegt als bei atool (2012), ist es doch sehr hilfreich. Ich habe mich dafür entschieden da es zum entpacken ganz ohne Parameter auskommt und genau so gut wie atool funktioniert.
atool bringt übrigens auch ein paar andere Befehle mit, wie z.B.
aunpack – entpacken
apack – packen
als – auflisten des Inhalts
Also für alles was in *.tar.* gepackt ist benutze ich einfach
tar -xvf DATEI
. Das hat bisher immer die Datei gepackt ohne, dass ich den entsprechenden Schalter für den Kompressionsalgorithmus angeben musste.Hi Martin, trifft für *.tar* auch zu, aber es gibt ja eine Vielzahl von Archivformaten. Gerade bei “exotischen” wie, *.arj, *.ace, *.lzo usw. sind die Skripte hilfreich.
Oder man schreibt sich ein paar Zeilen in die .bashrc und entpackt mit: ex datei.rar (oder tar oder was auch immer):
# ex - archive extractor
# usage: ex
ex ()
{
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) unrar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1;;
*.7z) 7z x $1 ;;
*) echo "'$1' cannot be extracted via ex()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
Hey CL,
super dies ist natürlich noch einfacher und selbst gelöst. Nice :)
Zur Ergänzung, falls jemand das Skript von CL verwenden möchte, es fehlten die ( Klammern vor den ganzen *.tar *.zip usw.Wenn dies weitergeführt wird, würde es sogar unp überflüssig machen.
atool kann wie SammysHP bereits bemerkte noch mehr.
Der Dank gebührt nicht mir. Dieses kleine Script befindet sich in der .bashrc von Manjaro schon bei der Installation. Und es fehlen keine Klammern. Ich hab das geprüft. So wie ich es gepostet habe, verwende ich das auf 3 verschiedenen Rechnern.
Da hatte ich wohl einen andern Fehler…
Habe es heute noch einmal ohne ( Klammern versucht und jetzt läuft es. Ich denke ich werde mir mal ein paar Standard .bashrc anschauen, scheint je was sinnvolles dabei zu sein ;)
Hey,
sollte es nicht atool -x Datei.tgz heißen?
Zumindest ist das bei mir nötig.
Vielen Dank, die Tools kannte ich noch nicht :)
Gerade bei Dateitypen, die man selten nutzt, sicher nützlich.
Vielen Dank Amiki, ist jetzt korrigiert.
Da habe ich wohl noch geschlafen ;)
Meiner Meinung nach sollte man die wichtigsten Befehle kennen, wenn man auf der Konsole unterwegs ist, dann steht man auch nicht hilflos da, wenn man mal auf einem Rechner arbeitet auf den solch zweifellos nützlichen Tools nicht installiert sind.
Wichtig zu wissen und IMHO ausreichend:
–help
man
oha, unp werd ich mir mal ansehen, ich mag zwar die konsole, kann mir aber die ganzen befehle einfach nicht merken und endpacke halt mit x-archiver.. aber gut ein tool zu wissen, das auch funktioniert, wenn ich den desktop mal wieder abschiesse
Oder man nimmt -a von tar
-a, --auto-compress
Die Archiv-Endung verwenden, um das Kompressionsprogramm herauszufinden
tar xaf foo.tar.?
Hi claw,
stimmt, aber dies funktioniert nur mit *.tar.* Archiven und benötigt auch wieder mehr als einen Parameter.
Wenn jetzt ein *.zip Archiv vorhanden ist, wir wieder ein andere Befehl benötigt (unzip).
Mir geht es darum alle möglichen Archive mit nur einem Befehl zu entpacken. Ganz nach dem KISS-Prinzip