wie mit Gunzip cpio wieder einpacken?

Status
Für weitere Antworten geschlossen.
C

Ctomi

Hab da ein Problem mit dem wieder einpacken auf exakt dieselbe Art. Also ich packe eine Datei auf diese Art aus, da erhalte ich dann mehrere Ordner mit Dateien drin. Ich will das dann wieder einpacken auf dieselbe Art finde aber einfach nicht den richtigen Weg. Hatte es erstmal mit denselben Dateien versucht damit ich vergleichen kann bekomme aber eine andere, größere Datei.

auspacken:
gunzip -c Datei | cpio -id

Hatte es damit versucht und auch noch in Einzelschritten das ist dann aber wohl ganz verkehrt.

find -depth | cpio -o | gunzip -9 Datei

Oder gibt es eine Möglichkeit Dateien dort drin zu ersetzen ohne es auszupacken?

Ich hätte noch eine zweite Möglichkeit, wie kann ich die Ordner, Dateien in eine Datei packen die diesem Format entspricht wenn man dieselbe Ursprungsdatei auf diese Art umpacken würde?

umpacken
gzip.exe -d -c Datei > Datei.tar

einpacken
gzip.exe -n -9 -c datei.tar > datei
 
umpacken
gzip.exe -d -c Datei > Datei.tar

einpacken
gzip.exe -n -9 -c datei.tar > datei

Bist du dir sicher, dass du mit dieser Frage bezüglich exe im Unixboard richtig bist?
Ich bin es nicht.

Verstehe außerdem den Sinn deines Vorhabens nicht.
Um ganze Verzeichnisstrukturen zu archivieren, wird unter *nix tar oder auch cpio verwendet.
Dieses lässt sich dann mit gzip oder auch bzip2 komrimieren.
 
tolle wurst man kann sich ja auch mal verschreiben eben ohne exe

alles was ich wissen will ist dieses reverse

gunzip -c Datei | cpio -id

das ich dazu erst cpio und dann gzip nehmen muß ist mir auch klar nur wie mit welchen option eben nicht
 
Das muß ja auch keinen Sinn für dich machen Hauptsache für mich macht es Sinn. Und wieso macht das keinen Sinn wenn ich nach der korrekten "Formel" zum einpacken frage wenn ich doch umbedingt die Dateien in derselben Art eingepackt benötige wie sie ursprünglich war? Ich hätte wohl sagen müßen das ich schon seit Ewigkeiten über 1000 Seiten rumsuche und alles mögliche ausprobiert habe, ich aber einfach nicht den richtigen Weg finde, und mir diese Seite auch nichts neues sagt. Ich dachte hier kann mir einer sagen wie das sicherlich total einfache richtig wieder eingepackt wird.?( Kann das sein das die Datei zwar mit dem oben geschriebenen ausgepackt werden kann aber irgendwie nicht ganz dem Standard entspricht das es mir nicht möglich ist es exakt gleich wieder einzupacken?
 
Also nochmal zur Verständigung:
gzip komprimiert eine Datei.
cpio oder auch tar komprimieren erstmal garnichts, sondern archivieren eine oder mehrere Dateien (incl. oder excl. Pfad je nach Optionen).
Diese Archive kannst du dann noch komprimieren oder bei tar gleich das Kompressionsprogramm mit angeben.
Folgendes produziert zwei identische komprimierte Dateien. Der einzige Unterschied im Archiv entsteht aus unterschiedlichen Dateinamen.
Entpacks du diese wieder, sind die Ergebnisse identisch.
Code:
gunzip -c test.txt.gz|gzip -9 -c >new_test.gz
Sowas wird nicht funktionieren, da du nicht gleichzeitig aus einem Filedeskriptor lesen und darauf schreiben kannst, ohne den Input zu truncieren.
Code:
$ gunzip -c test.txt.gz|gzip -9 -c >test.txt.gz

gunzip: test.txt.gz: unexpected end of file

Willst du nun die Ausgabe an cpio verfüttern scheiterst du, weil cpio keinen Dateiinhalt, sondern Dateinamen erwartet:

Gruß Wolfgang
 
Das ich das erstmal alles in eine Datei packen muß mit cpio so wie es original auch war weiss ich schon, nur wie?( das mit excl. Pfad dürfte das richtige sein. Welche Option wäre das? Und diese dann mit gzip komp. ja genau das will ich machen.

ich hatte das in Einzelschritten so ausgepackt mit dem selben Ergebnis

ergibt die cpio:
gunzip -cdf datei > datei

cpio -id < datei

ist das richtig so? müßte ja denn es ergibt dasselbe wie

gunzip -c Datei | cpio -id

ich denke es hängt nur an der Übergabe der Ordner, Dateien an cpio

find -print | cpio -o > datei

was ist denn damit, falsch?
 
Code:
gunzip -c Datei | cpio -id
Übergibt keinen Dateinamen an cpio, sondern den Inhalt einer Datei, was scheitert.
Code:
gunzip -c Datei >neue_datei && cpio --create neue_datei >gzip -9 >Neues_cpio_archiv.gz
 
Das geht aber 100% das habe ich mir nicht ausgedacht, habe das so gelesen das man so die Datei auspacken kann/muss, da erhalte ich die Ordner und Dateien die da drin sind. Ist das der Grund warum es mit dem einpacken auf dieselbe Art scheitert weil das schon so komisch ausgepackt wird?
Code:
gunzip -c Datei >neue_datei && cpio --create neue_datei >gzip -9 >Neues_cpio_archiv.gz
?( gibs dazu eine Erklärung, schnall das jetzt grade nich, ist das was was ich benutzen kann um meine Dateien mit cpio gzip einzupacken in einem Rutsch?( sieht irgendwie nich so aus?(
 
Ich sagte schon einmal:
gzip hält immer nur eine Datei
cpio kann wie tar ganze Verzeichnisse archivieren.
Das sind zwei paar Stiefel.
Aber warum nutzt du nicht einfach tar.
Decompress einfach alle Dateien und erstell dann ein Archiv mit tar oder cpio.
 
Und ich sagte schon mehrmals das ich erst cpio benutze um aus den vielen Dateien eine zumachen und das ich exakt dieselbe Art und Weise zum einpacken benutzen muß. Die Zweite Möglichkeit die ich hätte wäre mit tar, nur ich möchte wissen wie ich das machen muß mit welchen Optionen, Schaltern nicht das ich das nehmen muß, denn das weiss ich schon längst, das hilft mir mal überhaupt nicht weiter.
 
Hallo
Du willst aus vielen Dateien eine machen?
Bist du dir da sicher?
Oder meinst du nicht eher, dass du viele Dateien in ein Archiv packen willst?

Wenn du weiterhin Hilfe willst, solltest du dir mal eine etwas genauere Beschreibung deines Problems nachdenken und Eigeninitiative zeigen.
Beispielsweise das Lesen der Manpage diverser Programme.
Auch hast du weder dein OS noch die verwendete Shell genannt.

Mein letzter Versuch:
Ich nehme hier an, du hast eine Menge mit gzip komprimierter Dateien und willst diese in ein Archiv packen.Hier wird im einfachsten Fall im Parentverz. ein cpio Archiv erstellt, welches alle ausgepackten Dateien enthält.
Normalerweise kannst du das über auch in zwei Läufen realisieren.
Auspacken, anschließen mit tar oder cpio zu einem Archiv hinzufügen.
Hier der Lauf in einem Rutsch!
Ungetestet ...
Code:
cd /path/to/files
for i in *gz; do gunzip -c $i>${i%\.gz}&& echo ${i%\.gz};done|cpio --create |gzip -9 >../cpio_file.gz
Für weitere Optionen siehe man cpio!

BTW ist dein Ton nicht gerade als freundlich zu bezeichnen.
Prost Neujahr
Wolfgang
 
Das kommt daher das ich mich hier völlig verscheissert vorkomme, oder ist das ein Forumfehler das dass gar nicht die Antworten für mich sind?(

Ich ignoriere das jetzt mal alles und fange von vorn an.

Ich habe:

Ordner/unkomprimierteDateien
Ordner/unkomprimierteDateien
Ordner/unkomprimierteDateien
Ordner/unkomprimierteDateien
...
..
Diese sollen zuerst mit cpio "eingepackt" werden. Das macht ja aus "viele Dateien" "eine Datei".

Diese eine große Datei soll dann komprimiert werden mit gzip. Das bekomme ich aber hin das ist keine Thema.
Es geht nur darum wie ich cpio sagen muß welche "Sachen" es "einpacken" soll, ich habe es mit find und ls probiert jeweils mit allem möglichen Optionen was ich auf den besagten 1000 Seiten die ich seit Ewigkeiten durchsuche gelesen habe, mit einer Listendateien wo die Pfade zu den Sachen drin steht die ich dann an cpio übergebe. Das funktioniert auch alles so wie es soll, ich erhalte eine komprimierte cpio Datei die wiederum alle andere Ordner Dateien erhält, auspacken klappt auch es ist alles genau so wieder da wie es sein soll. Das Problem ist, ich hatte natürlich jetzt erstmal nur mit den gleichen Dateien getestet wie sie in der Ursprungsdatei vorhanden sind um vergleichen zu können ob meine selbst erstellt Datei genau gleich ist, denn das muß sie sein, später sollen Dateien ausgetauscht werden. Die Datei ist aber nicht gleich die ist immer ein Stück größer und funktioniert auf dem System nachher auch nicht da sie eben anderes ist als sie sein müßte. Ist das jetzt nun einfach genug?(
 
Das kommt daher das ich mich hier völlig verscheissert vorkomme, ....
Wenn ich folgendes lese komm ich mir verscheißert vor.
Das Problem ist, ich hatte natürlich jetzt erstmal nur mit den gleichen Dateien getestet wie sie in der Ursprungsdatei vorhanden sind um vergleichen zu können ob meine selbst erstellt Datei genau gleich ist, denn das muß sie sein, später sollen Dateien ausgetauscht werden.
Später sollen Dateien ausgetauscht werden, irgendetwas ist nicht gleich, alles sehr wirr...
Wo ist denn nur das wirkliche Problem.
Wenn du zwei identische Archive erzeugen willst, dann starte das gleiche Archivprogramm zweimal mit den gleichen Optionen und dem gleichen Source.
Die Datei ist aber nicht gleich die ist immer ein Stück größer und funktioniert auf dem System nachher auch nicht da sie eben anderes ist als sie sein müßte. Ist das jetzt nun einfach genug

Was heißt eine Datei funktioniert nicht?
Von welchem OS und welcher Shell reden wir?

Da dir nicht klar ist, dass Du hier etwas willst, und meine Beiträge scheinbar komplett ignorierst, klinke ich mich hier aus.

Wolfgang
 
Das Problem ist das du absolut nix begreifst, und ständig nur Blödsinn der hier nicht dazu passt schreibst den man einfach nur ignorieren kann.
Ich habe die Ursprungsdatei nicht erstellt, weiss also nicht wie sie erstellt wurde. Wie soll ich den überprüfen ob das, einpacken auf dieselbe Art, geklappt hat wenn ich nicht erstmal die selben Dateien benutze um das Ergebnis mit dem original zu vergleichen. Erst wenn das dann geklappt hat kann ich anfangen die Dateien zu ändern. Da du nicht mal einfachste logische Sachen begreifst brauche ich erst gar nicht anfangen zu erklären was es heisst "funktioniert nicht" oder wo das nachher laufen soll. Man man;( schreib doch lieber gar nix.
 
Klick mich Hier

Man man schreib doch lieber gar nix.

Du wolltest Hilfe!
Mir ist dein Problem eigentlich egal.
;)
Lies dir den Thread nochmal ganz entspannt durch, und überleg dir, wie man (du) künftig vorgeh(s)t, wenn du nicht in der Lage bist dein Problem zu lösen.

closed
Viel Glück
Wolfgang
 
Status
Für weitere Antworten geschlossen.

Ähnliche Themen

Problem mit HSPA+ Modem Huawei E353 - Installation unmöglich?

Last mit etc/passwd anzeigen lassen

Displayport + externer Monitor zeigt bei startx nichts erst bei DVI

[Tcl / Shell] Ändern einer Datei per vi - Änderungsdatum einer Datei erfassen

Ubuntu X / dbus problem

Zurück
Oben