TAR Archiver/Unarchiver

Rund um die LCL und andere Komponenten
Antworten
Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

TAR Archiver/Unarchiver

Beitrag von Targion »

Hallo!
Ich war auf der Suche nach einer guten Komponente zum erstellen und bearbeiten von TAR Archiven. Dabei habe ich sehr schnell LibTar gefunden.
Blöderweise erstellt das Teil nur TAR-Archive der alten Generation, was bedeutet, dass z.B. Dateipfade nur 100 Zeichen lang sein dürfen. Gibt es eine gute Pascal-Komponente, die GNUTar-Archive erstellen kann? (Abbrevia möchte ich mir für diese Aufgabe in keinem Fall antun)

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: TAR Archiver/Unarchiver

Beitrag von Scotty »

"Getart" wird doch nur unter Unix und da ist das Programm tar sicher immer verfügbar. Reicht dann nicht ein TProcess?
Etwas OT: Ich habe hier im Forum eine Unit myzipper.pp gefunden, die sich hervorragend benutzen lässt. Im Zip könnten auch mehrere Dateien Platz finden.

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: TAR Archiver/Unarchiver

Beitrag von Targion »

Ja, tar pipen wäre eine Lösung, und ich schreibe auch schon daran... Etwas "natives" für Pascal hätte ich natürlich besser gefunden... Danke!
ZIP kommt für den Einsatzzweck aktuell nicht in Frage.

marcov
Beiträge: 1102
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: TAR Archiver/Unarchiver

Beitrag von marcov »

libtar fixen?

Libtar gibts auch in FPC's SVN. (fcl-base glaube ich)

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: TAR Archiver/Unarchiver

Beitrag von Targion »

Leider kann das auch nur maximal 100 Zeichen archivieren...
Wie kann ich bei GNU tar den Namen der Datei im TAR-Archiv angeben?

Code: Alles auswählen

tar --append --file=test.tar /home/xyz/test.txt
Im TAR archiv ist test.txt dann in genau der gleichen Ordnerstruktur gespeichert, wie sie auf der Platte lag. (test.txt in home/xyz/) Ich will aber vorgeben, wie die Datei im TAR-Archiv heißen soll.
Kennt jemand die nötigen Parameter dafür?

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: TAR Archiver/Unarchiver

Beitrag von Scotty »

Wie kann ich bei GNU tar den Namen der Datei im TAR-Archiv angeben?
Geht das überhaupt mit irgendeinem Packprogramm? Widerspricht doch dem Zweck... http://linux.die.net/man/1/tar" onclick="window.open(this.href);return false;
Umbenennen vorher und zurück benennen nach dem einpacken wäre ansonsten eine Lösung.

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: TAR Archiver/Unarchiver

Beitrag von Targion »

Ich glaube ich habe eine Lösung gefunden (wenn ich das -C-Parameter zweckentfremde und die Dateien in eine extra Struktur kopiere)
Danke!

shokwave
Beiträge: 475
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: TAR Archiver/Unarchiver

Beitrag von shokwave »

Targion hat geschrieben:

Code: Alles auswählen

tar --append --file=test.tar /home/xyz/test.txt
Im TAR archiv ist test.txt dann in genau der gleichen Ordnerstruktur gespeichert, wie sie auf der Platte lag. (test.txt in home/xyz/) Ich will aber vorgeben, wie die Datei im TAR-Archiv heißen soll.
Genauer gesagt wird es so archiviert wie du es im Befehl angegeben hast. Willst du nur den letzten Ordner "xyz/" haben musst du vorher dein Arbeitsverzeichnis mit ChDir wechseln und den Befehl entsprechend anpassen.

Code: Alles auswählen

..
  chdir('/home');
  TProcess1.CommandLine:='tar --append --file=test.tar /xyz/test.txt';
  TProcess1.Execute;
..
Sollen die Dateien auch noch anders benannt werden, müsstest du sie vorher kopieren.
mfg Ingo

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: TAR Archiver/Unarchiver

Beitrag von Targion »

Genau so mache ich das auch! (nur dass ich anstelle von chdir das -C-Parameter verwende)

Antworten