Brauche hilfe mit tar

GNU/Linux-, *BSD- und Fricklerforum
Antworten
barix
Angel
Angel
Beiträge: 574
Registriert: Sep 2005

Brauche hilfe mit tar

Beitrag von barix »

Hallo,

es sollen DATEI1 und DATEI2 in pack.tar.gz per make dist verpackt werden.

Makefile und die beiden Dateien müssen im selben Ordner liegen

In der makefile dachte ich mir das so ungefähr:
[font="Courier New"]dist: DATEI1 DATEI2
tar cfvz pack.tar.gz DATEI1 DATEI2[/font]

edit1: ich hab ne Idee:
[font="Courier New"]dist: a1.c makefile
mkdir aufgabe1/
cp a1.c makefile aufgabe1/
tar cfvz a1.tar.gz aufgabe1/
rm aufgabe1/a1.c
rm aufgabe1/makefile
rmdir aufgabe1/[/font]

Beim entpacken mit tar xfz pack.tar.gz soll ein Unterornder Inhalt entstehen mit folgender Hierarchie.
Inhalt/DATEI1
Inhalt/DATEI2

Wie muss tar angewendet werden oder was muss in der makefile stehen damit das so funktioniert.

edit1: ist das dennoch über tar zu realisieren?
MAR
Perfect
Perfect
Beiträge: 9240
Registriert: Aug 2001

Beitrag von MAR »

Ich versteh nicht was make mit komprimieren zu tun hat :confused:

€: Ok habs, du willst sozusagen bestimmte Parameter fürs Entpacken mit einbauen.
Kann dir leider nicht helfen.
Bild
fame
Combo
Combo
Beiträge: 13806
Registriert: Okt 2000
Wohnort: LK Rosenheim

Beitrag von fame »

Versteh ich nicht :ugly:

Wenn du einen Ordner "Inhalt", in dem sich zwei Dateien befinden, packst und dann wieder entpackst bleibt die Hierarchie doch bestehen. Wo genau ist jetzt das Problem?!
barix
Angel
Angel
Beiträge: 574
Registriert: Sep 2005

Beitrag von barix »

Wenn allerdings schon ein Verzeichnis Inhalt mit x Dateien besteht, so werden nur DATEI1 und DATEI2 hineinkopiert - und so der Ordner Inhalt mit den x Dateien + DATEI1 und DATEI2 verpackt.

Beim entpacken sollen aber nur DATEI1 und DATEI2 in Ordner Inhalt erscheinen.
fame
Combo
Combo
Beiträge: 13806
Registriert: Okt 2000
Wohnort: LK Rosenheim

Beitrag von fame »

Du kannst doch einfach beim untar angeben welche Dateien aus dem tar Archiv entpackt werden sollen.

Also z.B.

Code: Alles auswählen

tar xf foo.tar inhalt/datei1 inhalt/datei2
barix
Angel
Angel
Beiträge: 574
Registriert: Sep 2005

Beitrag von barix »

foo.tar.gz muss leider genau mit "tar xfz foo.tar.gz" (oder in meinem Fall "tar xfz pack.tar.gz") entpackt werden.
fame
Combo
Combo
Beiträge: 13806
Registriert: Okt 2000
Wohnort: LK Rosenheim

Beitrag von fame »

Sorry aber ich hab immer noch keinen Schimmer was du vor hast.

Du willst einen Ordner (in dem sich x Dateien befinden) packen, dann aber nur 2 Dateien daraus entpacken und der Befehl zum entpacken darf nicht anders aussehen als "tar xfz foo.tar.gz"? Wüsste nicht wie das möglich sein sollte.

Du kannst natürlich nur die 2 Dateien in das tar Archiv packen und dann mit "tar xfz foo.tar.gz" entpacken, aber das wolltest du auch nicht falls ich alles richtig verstehe!?
wildtollwut
Biker
Biker
Beiträge: 1031
Registriert: Mär 2003

Beitrag von wildtollwut »

Bei mir geht sowas:

tar -cvf foo.tgz `find Inhalt \( -iname "DATEI1" -or -iname "DATEI2" \)`
Gründungsmitglied und Vorstandsvorsitzender der ersten offziellen PQ.de-Exorzisten-(CS-Austreiber)-Offensive.
Bild
fame
Combo
Combo
Beiträge: 13806
Registriert: Okt 2000
Wohnort: LK Rosenheim

Beitrag von fame »

So wie ich ihn verstehe weiss er schon wo sich die Dateien befinden.

Da würde ein einfaches

Code: Alles auswählen

tar cfz foo.tar.gz Inhalt/Datei1 Inhalt/Datei2
reichen. Nur kann OP halt nichtmal halbwegs vernünftig erklären was er da vorhat :ugly:
barix
Angel
Angel
Beiträge: 574
Registriert: Sep 2005

Beitrag von barix »

:(

Ich danke euch für die Antworten.

Es funktioniert so wie fame es bescheiben hat, danke dafür. Nur dachte ich vorher das wenn ich es so verpacke, das dann DATEI1 und DATEI2 im root-Verzeichnis des Packetes liegen.

Hier nochmal die Aufgabenstellung im Wortlaut:

make dist - verpackt ein Verzeichnis, in dem die Quelldatei(en) und das Makefile (und nur
diese) enthalten sind in ein Archiv pack.tar.gz. Nach dem Aufruf von make dist befindet sich
das Archiv im selben Verzeichnis wie die Quelldateien und das Makefile.

Senden Sie die Datei pack.tar.gz per e-Mail an: foo@bar...
Voraussetzungen für die Bewertung...:
1. Ihr abgegebenes Archiv lässt sich mittels tar xfz pack.tar.gz auspacken. Dabei
entsteht ein neues Unterverzeichnis namens Inhalt, welches die Quelldatei(en)
und das Makefile enthalten.
2. Auf dem Rechner baz lässt sich mittels make das lauffähige Programm foo2
erstellen.
MAR
Perfect
Perfect
Beiträge: 9240
Registriert: Aug 2001

Beitrag von MAR »

Ich habs immer noch nicht richtig verstanden :ugly: :)
Bild
Antworten