Update: Meine ursprüngliche Antwort funktioniert überhaupt nicht, sorry. tar
akzeptiert keinen Datenstrom von STDIN als Eingabe, daher schlägt der erste Befehl fehl.
Ich kann mir nur vorstellen, was Sie erreichen wollen, indem Sie Ihr eigenes Programm schreiben, um die erforderlichen tar
Header und ähnliches um Ihren Datenstrom hinzuzufügen . Dann könntest du schreiben:
$ bzcat foo.bz2 | stream-to-tar | bzip - > foo.tar.bz2
... und (vorausgesetzt, Ihr Programm hat das tar
richtige Format), können Sie es mit einem Standard dekomprimieren tar xf foo.tar.bz2
.
Dies ist wahrscheinlich nicht die Art und Weise, in der Sie es tun möchten, da es nicht die üblichen Vorteile des Tarierens der Datei bietet.
$ bzcat foo.bz2 | tar cjf foo.tar.bz2 -
Nun, das Problem ist, dass tar kein Dateisystem enthält, da wir lediglich einen dekomprimierten Datenstrom haben. Das heißt, Sie müssen es wie folgt dekomprimieren / entpacken:
$ tar --to-stdout -xjf foo.tar.bz2 > foo