tar archive
Stefan
- sonstiges
Hallo,
ich bin noch ziemlich neu was das entpacken von packeten in linux angeht.
es gibt zwar immer überall anleitungen aber ich habe mich erstmal mit den grundliegenden dingen (kommandos) befasst.
wenn ich auf der konsole ein archiv auspacken und in ein ordner kopieren möchte, würde ich das so machen(laut meines lesens):
tar -x einpacket.tar -C /packet
so, nun meine fragen bezüglich dieser sache.
-x bedeutet ja kopiert alle datein aus dem verzeichnis,
was muss man nun darunter verstehen?
ist doch eigentlich logisch das alle daten verarbeitet werden sollen oder nicht?
-C wechselt während der ausführung in das verzeichnis, um von dort weitere dateien zu archivieren.
das kapiere ich nun überhaupt nicht.wieso archivieren? ich will doch entpacken!
kann mir da einer helfen? ein paar denkanstöße geben?
das wäre super nett!
danke!
übrigends, ich frage nur weil ich angst habe irgendwas zu zerstören mit dem auspacken von datein.
ich musste auch mal selber vor dem installieren einen quellcode kompilieren(nach anweisung), das hat mein linux zerschoßen.
ich weiss einfach nicht wo die dinge dann landen was ich entpacke.
übrigends, ich frage nur weil ich angst habe irgendwas zu zerstören mit dem auspacken von datein.
Du könntest höchstens irgendwelche Dateien überschreiben oder das Archiv im schlimmsten Falle unbrauchbar machen (einfach erneut downloaden oder vorher eine Sicherheitskopie erstellen :-D). Am besten sollte -C in ein leeres Verzeichnis zeigen oder du solltest das Paket selbst in ein leeres Verzeichnis legen und ohne -C entpacken.
ich musste auch mal selber vor dem installieren einen quellcode kompilieren(nach anweisung), das hat mein linux zerschoßen.
Kompilieren und Entpacken ist ja eigentlich nicht so wirklich das gleiche, nicht? ;-)
ich weiss einfach nicht wo die dinge dann landen was ich entpacke.
Ohne -C:
Im selbigen Verzeichnis wie einpacket.tar
Mit -C:
Im angegebenen Verzeichnis (im vorherigen Beispiel wäre das /packet)
Allerdings weise ich dich darauf hin, dass es nicht sehr sinnvoll ist im Wurzelverzeichnis irgendwelche Dateien und Ordner abzulagern. Wer will schon eine Unordnung auf seiner Festplatte ;-)
Mit freundlichen Gruessen,
Pot
Hallo,
Moin,
es gibt zwar immer überall anleitungen aber ich habe mich erstmal mit den grundliegenden dingen (kommandos) befasst.
gut :-)
wenn ich auf der konsole ein archiv auspacken und in ein ordner kopieren möchte, würde ich das so machen(laut meines lesens):
tar -x einpacket.tar -C /packet
Fast korrekt. Jetzt musst du noch f an das x anhängen. Damit sagst du dem tar-script er solle das Archiv "einpacket.tar" benutzen. Mit -x sagst du er solle aus diesem mit -f angegebenen Paket extrahieren. Mit -C wechselst du einfach in das Verzeichnis /packet und dort purzeln alle Dateien aus einpacket.tar rein.
so, nun meine fragen bezüglich dieser sache.
-x bedeutet ja kopiert alle datein aus dem verzeichnis,
nicht ganz. -x bedeutet extract/extrahieren! Und nicht aus dem Verzeichnis sondern aus dem Paket einpacket.tar!
was muss man nun darunter verstehen?
ist doch eigentlich logisch das alle daten verarbeitet werden sollen oder nicht?
Logisch ist es. Aber wie soll das tar-script die Daten verarbeiten?
-x extrahieren?
-c selbst ein Paket erstellen?
-r Dateien zum Paket anhängen?
usw.
Deshalb diese "Schalter"
-C wechselt während der ausführung in das verzeichnis, um von dort weitere dateien zu archivieren.
Ich habe -C nochnie im Zusammenhang mit -c (also ein Archiv erstellen) benutzt. Aber wenn du -x benutzt (um zu entpacken/extrahieren) werden von dort keine Dateien archiviert, sondern dort kommt der Inhalt von einpacket.tar rein.
das kapiere ich nun überhaupt nicht.wieso archivieren? ich will doch entpacken!
Mach das Programm auch, wenn du -x angibst!
Also eigentlicher Befehl zum extrahieren von .tar archiven (nicht komprimierte Archive!):
tar -xf einpacket.tar -C /packet
tar = ruft Script tar auf
-x = sagt dem tar, er solle extrahieren
-f einpacket.tar = sagt dem tar, er solle das Archiv "einpacket.tar" benutzen (eben zum extrahieren)
-C /packet = wechselt ins Verzeichnis /packet
Wie du siehst habe ich die "Schalter" -x und -f zusammengezogen: -xf
Dies ist meistens möglich. Beim tar kannst du sogar den Bindestrich wegnehmen:
tar xf einpacket.tar -C /packet
Ich hoffe ich konnte dir helfen, ansonsten einfach wieder fragen :-)
Mit freundlichen Gruessen,
Pot
Hallo Pot,
ah, jetzt kapiere ich!
aber nur um ganz sicher zugehen, die argumente die ich dem tar mitgebe müssen in logischer reihenfolge stehen?
tar xf einpacket.tar -C /packet
oder kann ich das auch drehen tar fx [...] ?
ansonten alles prima!
danke für deine nette hilfe!
am besten ich erstelle selber ein packet und entpacke etc. um zu sehen was so passiert.
aber du hast erstmal licht ins dunkle gebracht!
Stefan
Moin,
ah, jetzt kapiere ich!
gut :-)
aber nur um ganz sicher zugehen, die argumente die ich dem tar mitgebe müssen in logischer reihenfolge stehen?
nein müssen sie nicht
ansonten alles prima!
danke für deine nette hilfe!
gerngeschehen
am besten ich erstelle selber ein packet und entpacke etc. um zu sehen was so passiert.
mach das ;-) Du weisst ja wie. Einfach c (create) statt x (extract) wählen
Du weisst aber, dass wenn du Dateien so packst:
tar -cf blabla.tar file1 [file2 ..]
Dass alle Dateien erst gepackt werden, nochnicht komprimiert! Es gibt grundsätzlich zwei Möglichkeiten Dateien zu komprimieren:
Gzip (Schalter 'z') und Bzip2 (Schalter 'j')
Wenn du also Gzip komprimiert packen willst:
tar xfz packet.tar.gz file1 [file2 ..]
Wenn du Bzip2 komprimiert packen willst:
tar xfj packet.tar.bz2 file1 [file2 ..]
Die üblichen Dateiendungen für Gzip ist tar.gz und für Bzip2 ist tar.bz2. So kannst du die jeweilige Komprimierung anhand des Dateinamens ableiten.
Korrigiert mich bitte wenn ich hier Bullshit erzähle ;-)
Ansonsten hilft sicher ein 'man tar' in der Konsole, welche dir die Manualseite (Handbuch) über das Programm 'tar' zeigt. Mit 'q' schliesst du die Manual wieder.
Pot