UNIX-Zeitstempel lesbar machen
In der UNIX-Welt wird die Zeit rechner-intern als ein ganzzahliger Wert geführt, der die Sekunden seit 00:00 am 1.1.1970 GMT darstellt.
Normalerweise hat man damit als Anwender oder Administrator nicht viel zu tun; wer sich das mal anschauen möchte, kann date "+%s"
eingeben. Das Ergebnis ist die aktuelle Uhrzeit im internen Format.
An einigen wenigen Stellen kann man aber auf das Problem stoßen, eine Uhrzeit nur in diesem Format erhalten zu können. So liefert rpm Zeitstempel nur in diesem Format. Zum Beispiel kann man so erfahren, wann ein bestimmtes Paket installiert wurde:
rpm -q --qf "%{NAME} %{INSTALLTIME}\n" kernel
Auch "stat -t" liefert die drei Zeitstempel einer Datei im internen UNIX-Format.
Jetzt muss man diese Information nur noch in ein menschenlesbares Format konvertieren können. Dazu reicht ein perl-Einzeiler:
perl -e '$time=localtime($ARGV[0]); print $time, "\n";' 1089286144
liefert als Ausgabe »Thu Jul 8 13:29:04 2004« - natürlich nur in meiner Zeitzone, die der CEST (Central European Summer Time) entspricht. Wer die Information lieber in GMT/UTC haben möchte, muss dazu nur die Funktion localtime() durch gmtime() ersetzen.