Gibt es mit einer zunehmenden Anzahl von Archivierungs- / Komprimierungsdateiformaten ein einziges kostenloses / Open-Source-Befehlszeilentool, um alle zu regieren? Vielleicht etwas mit einem konsistenten / einheitlichen Satz von Flags? (Beachten Sie meine freundliche implizite Bezugnahme auf Teer )
Ich bin einmal auf eine Reihe von Aliasnamen gestoßen, die die Komprimierung / Dekomprimierung von Dateien mit Bindungen zu tar
und anderen Dienstprogrammen weitgehend vereinfachen sollen , aber ich kann diese nicht mehr finden.
Update:
Wie kann ich so etwas konfigurieren, dass atool
es nicht unzip
zum Extrahieren von ZIP-Dateien verwendet wird (die anscheinend keine Dateien größer als 4 GB verarbeiten können) und gunzip
stattdessen verwenden?
$ aunpack large_file.zip
error: Zip file too big (greater than 4294959102 bytes)
Archive: large_file.zip
warning [large_file.zip]: 1491344848 extra bytes at beginning or within zipfile
(attempting to process anyway)
error [large_file.zip]: start of central directory not found;
zipfile corrupt.
(please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)
aunpack: unzip ...: non-zero return-code
tar
utilities
compression
Amelio Vazquez-Reina
quelle
quelle
unpack
unterscheidetatool
?7z
.Antworten:
Ich benutze Atool . Es macht den Job. Es funktioniert mit vielen, wenn auch nicht allen Formaten:
Teer, GZIP, BZIP2, BZIP, LZIP, LZOP, LZMA, ZIP, RAR, LHA, ARJ, ARC, P7ZIP usw.
Diese Komprimierungswerkzeuge werden weiterhin benötigt, da atool lediglich ein Frontend für sie ist.
Mir gefällt besonders der
als
Befehl, der den Inhalt aller unterstützten Archivformate auflistet.Der Hauptbefehl
atool
verwendet seine eigenen Flags zum Extrahieren von Archiven (Übergabe der entsprechenden Flags an die jeweiligen zugrunde liegenden Extraktionswerkzeuge).Oh, und es ist in den Repositories einiger Distributionen (Fedora in meinem Fall, obwohl ich mich erinnere, als ich Ubuntu benutzte, war es damals nicht in ihren Repos und ich habe es von einem Tarball aus installiert.).
Update auf Repositories : atool befindet sich in den Repositories der folgenden Distributionen (nur aktuelle Releases geprüft):
Ich bin sicher, es gibt andere ... plausibel die modernsten Distributionen.
Antwort auf die aktualisierte Frage "Wie kann ich so etwas wie atool so konfigurieren, dass zum Extrahieren von ZIP-Dateien kein Entpacken verwendet wird ... und stattdessen gunzip verwendet wird" :
Bearbeiten Sie die atool-Konfigurationsdatei
~/.atoolrc
und fügen Sie die folgende Zeile hinzu:mit dem richtigen Pfad zu Ihrem Gunzip-Programm.
Auf der Manpage finden Sie eine vollständige Liste der möglichen Variablen, die Sie in diese Konfigurationsdatei einfügen können, von denen es viele gibt . Wenn sich die für gunzip erforderlichen Befehlszeilenoptionen von unzip unterscheiden, müssen Sie möglicherweise die atool-Quelle (Perl) selbst ändern.
quelle
Hier ist eine kleine Shell-Funktion, die sich um mehrere Archivtypen kümmert.
Ich fand die Originalversion dieser Funktion irgendwo online und änderte sie ein wenig, um
ar
Archive und xz-komprimiertetar
Archive zu extrahieren .quelle
bash
und getestetzsh
, aber es sollte auch funktionierensh
.Das AVFS- Dateisystem bietet eine Ansicht des Dateisystems, in dem jede Archivdatei (z. B.
/path/to/foo.zip
) als Verzeichnis verfügbar ist (~/.avfs/path/to/foo/zip#
in diesem Beispiel). AVFS bietet schreibgeschützten Zugriff auf die gängigsten Archivdateiformate.AVFS externe Helfer verwendet , die leicht durch Editieren von Dateien in konfiguriert werden kann
/usr
(leider gibt es keine Möglichkeit , wie von AVFS 1.0 zu verwenden , um Dateien in/usr/local
oder in Ihrem Home - Verzeichnis, müssen Sie bearbeiten Dateien in/usr
oder neu zu kompilieren). Ist/usr/share/avfs/extfs/ext-uzip
das Skript für den Umgang mit.zip
Dateien, ändern Sie es, wenn Sie es nicht verwenden möchten/usr/bin/unzip
. Möglicherweise können Sie 7z nicht mehr verwenden: Versuchen Sie/usr/share/avfs/extfs/extfs.ini
, die Zeileext-uzip
zu bearbeiten und ändern Sie sie inu7z .zip
.quelle