Es wird mal wieder Zeit zu Bloggen. Ich beginne mal eine Serie, die ich in loser Folge bis in alle Ewigkeit fortsetzen möchte.

Es geht um Shelltools, also kleine Helfer auf der Kommandozeile. Häufig ist man doch gezwungen unter Linux (auch in der Sandbox eines ChromeBook) Aufgaben auf der Kommandozeile zu erledigen. Ich persönlich finde das an vielen Stellen auch deutlich einfacher und performanter als das Klicki Bunti.

atool – Schweizer Taschenmesser für Archive

Der erste Kandidat für ein solches Tool ist atool. Eines der von mir am meisten genutzten kleinen Helferlein. Vorweg muss ich aber sagen das atool scheinbar seit 2012 nicht mehr aktiv betreut wird. Das tut aber der Funktion keinen Abbruch und auch in aktuellen Distributionen wird das Tool eingepflegt.

Atool ist ein kleines Perl-Skript zur Bearbeitung und Verwaltung von komprimierten Dateiarchiven verschiedener Typen. Dabei kann das Tool mit Archivformaten wie .tar.zip.jar.rar.lha.lzh.gz.bz.7z.deb und vielen mehr umgehen.

Der große Vorteil ist, das man sich nicht jede Option jedes einzelnen Packprogramm merken muss. atool vereint alle Formate unter einem (Kommandozeilen) Befehl.

atool installieren

Auf nahezu allen Debian basierten System (Ubuntu, Xubuntu, … und die ChromeOS Sandbox ) reicht ein einziger Befehl zur Installation aus:

sudo apt install atool

Benutzung

Für die Benutzung gibt es verschiedene Einzelbefehle für die jeweiligen Programmfunktionen. Ansonsten kann auch auf den eigentlichen Befehl zurückgegriffen werden.

Grundsätzlich wird, wenn kein Archivtyp angegeben wird (–format bzw. -F), der Archivtyp aus der Dateiendung bestimmt.

Einzelbefehle

aunpack

aunpack extrahiert ganze Archive oder Einzeldateien aus einem Archiv. Werden nur einzelne Dateien aus einem Archiv entpackt, legt das Programm diese im aktuellen Arbeitsverzeichnis ab. Wird jedoch ein ganzes Archiv entpackt, legt aunpack automatisch ein temporäres Verzeichnis an, in welchem die ausgepackten Dateien platziert werden. Genau das ist auch die unglaubliche Stärke von atool. Ich entpacke einfach ein Archiv und der Kram landet mir nicht versehentlich im aktuellen Ordner. Ist im Archiv ein Verzeichnis wird das verwendet. Gibt es kein Verzeichnis im Archiv und es sind mehrere Dateien drin wird trotzdem eins angelegt.

aunpack [OPTION]... ARCHIV [DATEI DATEI ...] 

apack

apack erzeugt Archive (oder komprimierte Dateien). Falls keine Optionen angegeben sind, werden die Dateinamen aus dem aus der Standardeingabe übernommen.

apack [OPTION]... ARCHIV [DATEI DATEI ...] 

als

als listet alle Dateien in einem Archiv auf oder gibt, falls angegeben, detailliertere Informationen zu einzelnen Dateien im Archiv aus.

als [OPTION]... ARCHIV [DATEI]... 

acat

acat extrahiert Dateien in einem Archiv in die Standardausgabe. Auf diese Weise ist es möglich, z.B. in einem Archiv verpackte Textdateien direkt im Terminal anzeigen zu lassen.

acat [OPTION]... ARCHIV [DATEI]... 

adiff

adiff zeigt den Unterschied zwischen zwei Archiven an. Hierbei verwendet es das Programm diff.

adiff [OPTION]... ARCHIV1 ARCHIV2 ... 

Grundsärtlicher Befehl atool

Auch mittels des Befehls atool kann auf sämtliche Programmfunktionen zugegriffen werden. Hierbei müssen zwingend die für die gewünschte Funktion vorgesehenen Optionen Anwendung finden.

Der Aufruf erfolgt über

atool [OPTION]... ARCHIV [DATEI DATEI ...] 

Optionen

Übersicht über die Aufrufoptionen

KurzformLangformBedeutung
-l--listListet die Dateien in einem Archiv auf (entspricht Aufruf von als).
-x--extractExtrahiert Dateien aus Archiv (entspricht Aufruf von aunpack).
-X--extract-to=VERZEICHNISPFADExtrahiert Dateien aus einem Archiv in ein angegebenes Verzeichnis.
-a--addGeneriert ein Archiv (entspricht Aufruf von apack).
-c--cExtrahiert eine Datei aus einem Archiv in den Standard-Output, zeigt also zum Beispiel den Inhalt einer verpackten Textdatei im Terminal an (entspricht Aufruf von acat).
-d--diffExtrahiert zwei Archive und zeigt, unter Verwendung des Programms diff, die Unterschiede zwischen beiden an (entspricht Aufruf von adiff).
-e--eachWendet den Befehl auf jedes einzelne angegebene Element an (Stapelverarbeitung). Dies kann hilfreich sein, um z.B. mehrere Archive zu extrahieren, listen oder generieren. Hinweis: diese Option kann nicht zusammen mit dem cat-Befehl verwendet werden.
-F--format=DATEINAMENSERWEITERUNGSpezifiziert das Archivformat manuell.
-S--simulateFührt atool im Simulationsmodus aus. Alle Befehle, welche normalerweise ausgeführt würden, werden statt dessen angezeigt, so dass keine Veränderungen am Dateisystem vorgenommen werden. Diese Option kann nicht mit --explain kombiniert werden, da sie diese bereits enthält. Hinweis: in manchen Fällen kann aus bestimten Gründen ein unterschiedliches Verhalten beim Verwenden des Simulationsmodus und des Nicht-Simulationsmodus auftreten.
-E--explainErläutert die von atool ausgeführten Befehle (kann nicht mit --simulate kombiniert werden).
-f--forceErlaubt beim Extrahieren das Überschreiben von lokalen Dateien bzw. beim Generieren eines Archivs das Überschreiben von Archivdateien. Hinweis: Es ist möglich, zu existierenden RAR- und ZIP-Archiven weitere Dateien hinzuzufügen; bei vielen anderen Formaten existiert diese Möglichkeit nicht.
-D--subdirErzeugt beim Extrahieren eines Archivs automatisch ein Unterverzeichnis.
-q--quietReduziert die Ausführlichkeit der ausgegebenen Informationen um eine Stufe.
-v--verboseErhöht die Ausführlichkeit der ausgegebenen Informationen um eine Stufe.
-V--verbosity=STUFELegt den Grad der Ausführlichkeit der ausgegebenen Informationen manuell fest. Standardstufe ist 1.
--helpGibt eine Zusammenfassung der möglichen Optionen aus.
--versionGibt Versionsinformationen aus.

Verwendungsbeispiele

  • Extrahieren aller Dateien eines Archivs in ein Unterverzeichnis bzw., falls das Archiv nur eine Datei enthält, in das aktuelle Arbeitsverzeichnis:
    aunpack ARCHIV.tar.gz
  • Extrahieren aller Dateien aller im aktuellen Verzeichnis vorhandenen .tar.gz-Archive:
    aunpack -e *.tar.gz
  • ZIP-Archiv der Bezeichnung ARCHIV.zip aus den Dateien DATEI1 und DATEI2 erstellen:
    apack ARCHIV.zip DATEI1 DATEI2
  • Inhalt des Archivs ARCHIV.rar auflisten:
    als ARCHIV.rar
  • Drei Archive dir1.tar.gzdir2.tar.gz und dir3.tar.gz generieren, so dass das erste Archiv alle Dateien aus dem Ordner dir1, das zweite alle Dateien aus dir2 und das dritte alle Dateien aus dir3 enthält:
    apack -e -F .tar.gz dir1 dir2 dir3
  • Die Unterschiede der Kernelversionen 2.4.17 und 2.4.18 anzeigen:
    adiff linux-2.4.17.tar.gz linux-2.4.18.tar.gz

Ich hoffe ich konnte dir einen guten Hint mit atool geben – Lord CrazyMaker

Leave a Comment

Bitte akzeptiere die Datenschutzbedingungen um Kommentare zu Schreiben.