Gibt es eine Möglichkeit, ein zip
Archiv in ein tar
Archiv zu konvertieren , ohne es zuerst in ein temporäres Verzeichnis zu extrahieren? (und ohne meine eigene Implementierung von tar
oder zu schreiben unzip
)
shell-script
tar
zip
user253751
quelle
quelle
Antworten:
Dies ist jetzt als installierbarer Befehl von PyPI verfügbar (siehe Ende dieses Beitrags).
Ich kenne kein "Standard" -Dienstprogramm, das dies tut, aber als ich diese Funktionalität benötigte, schrieb ich das folgende Python-Skript, um von ZIP zu Bzip2-komprimierten Tar-Archiven zu wechseln, ohne zuerst etwas auf die Festplatte zu extrahieren:
Einfach speichern
zip2tar
und ausführbar machen oder speichernzip2tar.py
und ausführenpython zip2tar.py
. Geben Sie den ZIP-Dateinamen als Argument für das Skript an. Der Ausgabedateiname fürxyz.zip
lautetxyz.tar.bz2
.Die komprimierte Ausgabe von Bzip2 ist normalerweise viel kleiner als die ZIP-Datei, da letztere keine Komprimierungsmuster für mehrere Dateien verwendet, aber es besteht auch eine geringere Wahrscheinlichkeit, dass eine spätere Datei wiederhergestellt wird, wenn etwas in der Bzip2-Datei nicht stimmt.
Wenn Sie die Ausgabe nicht komprimieren möchten, entfernen Sie
:bz2
und.bz2
aus dem Code.Wenn Sie
pip
in einer python3-Umgebung installiert haben , können Sie Folgendes tun:Um ein
zip2tar
Kommandozeilen-Dienstprogramm zu erhalten, das die oben genannten Schritte ausführt (Haftungsausschluss: Ich bin der Autor dieses Pakets).quelle
time
fehlt einimport
.time
Kommentar, ich aktualisiere die AntwortDer
tar
Befehl behandelt Dateisysteme. Die Eingabe ist eine Liste von Dateien, die dann aus einem Dateisystem gelesen werden (einschließlich vieler Metadaten). Sie müssten die zip-Datei als Dateisystem präsentieren, damit dertar
Befehl sie lesen kann.Ein virtuelles Dateisystem - Mit AVFS kann jedes Programm über eine standardmäßige Dateisystemschnittstelle über FUSE in archivierte oder komprimierte Dateien schauen .
Es gibt einige detaillierte Informationen in der Readme-Datei von avfs-fuse und einige Distributionen haben Pakete dafür.
Wenn Sie AVFS installiert haben, können Sie
AVFS fügt alle Informationen für das Dateisystem ein, die in der ZIP-Datei fehlen, wie z. B. der Dateibesitz, den tar abholt.
quelle
Hier ist ein kleiner Ausschnitt, der ein ZIP-Archiv in ein passendes TAR.GZ-Archiv OnTheFly konvertiert.
Konvertieren Sie ZIP-Archiv in TAR-Archiv im laufenden Betrieb
Quelle
quelle