PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : tar - bestimmte datei entpacken



jogisarge
01-08-2007, 08:25
Hallo zusammen!

Ich habe leider keine Ahnung von Linux - stolpere aber immer über kleine Problemchen.
Da ich Internetprogrammierung mit php-mysql realisiere nutze ich gerne den Tar Befehl zur Archiverung.
Beispiel PHP-Code:



$name = "daten.tar.gz";
system("tar cfvz $name ./daten/import");
system("mv $pfad ./daten/packed/$pfad");


./daten/import enthält best1.txt;best2.txt ...
Meine gewünschten Archive werden auf diese Art schön erstellt.
Jetzt meine Frage (und ich habe versucht aus den vielen Manuals selbst schlau zu werden) :
Wie kann ich eine bestimmte Datei(best2.txt) aus dem Archiv an einen bestimmten Ort entpacken ?

Wenn ich mir ein Archiv herunterlade, und entpacke, dann legt er die gepackte Verzeichnisstruktur auf meine Windows pc an.
Das möchte ich aber nicht.
Es soll lediglich die Datei an einen bestimmten Ort entpackt werden.

Geht das ?

Gruß jogi

jan61
01-08-2007, 12:52
...
Wie kann ich eine bestimmte Datei(best2.txt) aus dem Archiv an einen bestimmten Ort entpacken ?

Wenn ich mir ein Archiv herunterlade, und entpacke, dann legt er die gepackte Verzeichnisstruktur auf meine Windows pc an.
Das möchte ich aber nicht.
Es soll lediglich die Datei an einen bestimmten Ort entpackt werden.

Mit tar ist es nicht schwer, eine Datei wieder zu holen:
tar xvf /pfad/zum/archiv pfad/zur/datei Was Du beachten musst, sind 2 Punkte:
1. Der Dateiname muss mit Pfad angegeben werden, wie er im tar-Archiv gespeichert ist; es können allerdings Platzhalter angegeben werden:
tar xvf /pfad/zum/archiv "*/*/datei" (Achte auf die "", sonst interpretiert die Shell die Platzhalter)
2. Die Datei wird in dem Pfad (relativ zu Deinem Arbeitsverzeichnis) entpackt, der im Archiv vorhanden ist. Du musst sie also nach dem Extrahieren dahin schieben, wo Du sie brauchst.

Wie machst Du das unter Windows? Mit Winzip?

Jan

BLUESCREEN3D
01-08-2007, 20:49
system("tar cfvz $name ./daten/import");
system("mv $pfad ./daten/packed/$pfad");

Auch hier solltest du die Dateinamen bzw. Pfade in " fassen, denn sobald $name oder $pfad Leerzeichen enthalten wird das nicht mehr wie gewünscht funktionieren.

edit: Je nach Nutzung auch auf ../ und ähnliches in den Namen achten.