Unter Linux kommen Ihnen öfters Dateien unter, die auf „.gz“ enden.
Dabei handelt es sich meist um ältere Logdateien im Verzeichnis /var/log, die nicht mehr in Benutzung sind. Der logrotate-Mechanismus des Betriebssystems packt diese Textdateien mit dem Programm gzip, um Platz zu sparen und macht zum Beispiel aus der Datei auth.log die komprimierte Datei „auth.log.1.gz“ und einen Tag später „auth.log.2.gz“.
Um mit dem Inhalt einer so gepackten Datei zu arbeiten, könnten Sie sie einfach entpacken, also zum Beispiel folgendes Kommando absetzen, die Datei in die Klartextvariante auth.log.2 zurückzuverwandeln
gunzip auth.log.2.gz
Das Problem dabei ist, dass Sie nach der Aktion wieder manuell komprimieren müssen, um mit dem Plattenplatz sparsam umzugehen. Bei vielen Dateien ist das eine mühsame Sache.
So arbeiten Sie direkt mit gz-Dateien
Es gibt eine bessere Methode, mit solchen Files zu arbeiten. Das Kommando zcat ist eine Variante von cat, die direkt mit per gzip gepackten Dateien arbeiten kann.
Wollen Sie also zum Beispiel obige Logdatei nach dem String „refused“ durchsuchen und alle Zeilen ausgeben, in denen dieser String vorkommt, schreiben Sie:
zcat auth.log.2.gz | grep -i refused
Hier eine beispielhafte Ausgabe davon:
Eine anderer Einsatzzweck sind SQL-Dumps, die man gepackt hat, um Bandbreite zu sparen. Haben Sie zum Beispiel eine Datei „mydb.sql.gz“, die Sie per Kommandozeile in einen Mysql-Server einspielen möchten, dann schreiben Sie etwas wie
zcat mydb.sql.gz | mysql <datenbank> -u<user> -p<password>