lme
FreeBSD Committer
Hallo zusammen,
der Titel sagt eigentlich schon alles:
Ich würde gerne viele Zip-Dateien mit vielen kleinen Dateien darin möglichst schnell in .tar.bz2 umwandeln.
Das ganze läuft auf Maschinen mit vielen Prozessoren, deswegen ist pbzip2 ideal, da es alle CPUs / Kerne ausnutzt und somit fast linear skaliert.
Bisher habe ich erst die .zip Datei entpackt, diese dann mit tar zusammengeschnürt und mit pbzip2 -9 ganz feste zusammengezogen und die ausgepackten Dateien danach gelöscht.
Dieser letzte Schritt ist der schmale Flaschenhals, hier würde ich gerne die Daten über eine Pipe von unzip an tar übergeben. Allerdings hat das bisher noch nicht geklappt, da (g)tar die Eingabedateien nicht erkennt. Ein
klappt jedenfalls nicht.
-j benutze ich bei unzip übrigens, weil ich alle Dateien des Archiv in einem Verzeichnis haben will.
Anstatt -c habe ich auch mal -p ausprobiert, allerdings mit dem gleichen Misserfolg.
Das ganze läuft auf Solaris 10, sollte hier aber vernachlässigbar sein.
der Titel sagt eigentlich schon alles:
Ich würde gerne viele Zip-Dateien mit vielen kleinen Dateien darin möglichst schnell in .tar.bz2 umwandeln.
Das ganze läuft auf Maschinen mit vielen Prozessoren, deswegen ist pbzip2 ideal, da es alle CPUs / Kerne ausnutzt und somit fast linear skaliert.
Bisher habe ich erst die .zip Datei entpackt, diese dann mit tar zusammengeschnürt und mit pbzip2 -9 ganz feste zusammengezogen und die ausgepackten Dateien danach gelöscht.
Dieser letzte Schritt ist der schmale Flaschenhals, hier würde ich gerne die Daten über eine Pipe von unzip an tar übergeben. Allerdings hat das bisher noch nicht geklappt, da (g)tar die Eingabedateien nicht erkennt. Ein
Code:
unzip -j -q -c source.zip | gtar --use-compress-program=pbzip2 cf target.bz2
-j benutze ich bei unzip übrigens, weil ich alle Dateien des Archiv in einem Verzeichnis haben will.
Anstatt -c habe ich auch mal -p ausprobiert, allerdings mit dem gleichen Misserfolg.
Das ganze läuft auf Solaris 10, sollte hier aber vernachlässigbar sein.