Andreas Meyer wrote:
Date: Thu, Jan 01 1970 01:00:00 MET
Hoppla...
Am Die, 12 Jun 2001 schrieb Juergen Schwarting:
uudecode erkennt automatisch welche Codierung vorliegt. Hier ein kleines Beispiel:
date >test.dat uuencode -m test.dat test.dat >test.b64 rm test.dat uudecode test.b64
andreas@gamma:~ > date >test.dat uuencode -m test.dat test.dat >test.b64
Da hast Du den Zeilenumbruch nicht mitbekommen, der in Jürgens Beispiel vor dem uuencode steht. Damit wird das uuencode samt allem dahinter zu weiteren Argumenten des date-Kommandos, ...
date: Ungültige Option -- »m« Mit `date --help' bekommen Sie mehr Informationen.
... und diese Meldung gibts, weil date damit natürlich nicht viel anfangen kann.
Es wird ein file namens testb64 angelegt, ist aber 0 byte groß.
Ein "Folgefehler": Die Ausgabeumleitung bezieht sich jetzt natürlich nicht mehr auf das uuencode (das gibt's ja als eigenes Kommando gar nicht mehr), sondern auf den date-Aufruf. Da der aber fehlschlägt (s.o.), gibt's auch keine Ausgabe, die die Datei füllen könnte.
Die Datei wird so eingeleitet:
--Boundary-=_nWlrBbmQBhCDarzOwKkYHIDdqSCD Content-Type: text/english; name="sendmail.cf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="sendmail.cf"
Dann ist das also ein MIME-Attachment in einer Mail. Hinter diesem Header sollte nach einer Leerzeile die base64-kodierte Datei kommen, der wiederum eine Boundary-Zeile folgt, die mit der vor dem Header identisch ist (evtl. noch mit "--" am Ende, falls das der letzte MIME-Teil der Mail war). Wenn Du nur diese eine Datei dekodieren willst, kannst Du Dir wie folgt behelfen: Kopier den base64-kodierten Teil (ohne den Header) in eine extra Datei und füge dort als erste Zeile "begin-base64"-Zeile und als letzte Zeile "====" ein, wie es in dem Beispiel in Jürgens Mail zu sehen ist. Dann sollte sich das mit uudecode dekodieren lassen.
BTW. Wenn Du diese Mail durch uudecode schiebst, wird sich auf wundersame Weise die Datei test.dat in Deinem Verzeichnis breit machen ;-)
Probiers aus...
uudecode diesemail
Die Jun 12 06:49:24 MEST 2001
Tatsächlich, das funktioniert. Was passiert da?
Irgendwo in Jürgens Mail trifft uudecode auf folgende Zeile: begin-base64 644 test.dat Die bedeutet soviel wie: Hier beginnt die base64-kodierte Darstellung einer Datei mit den Zugriffsrechten 644 (rw-r--r--) und dem Namen "test.dat". Darauf folgt dann der eigentliche, base64-kodierte Inhalt der Datei: RGllIEp1biAxMiAwNjo0OToyNCBNRVNUIDIwMDEK Das ist nichts weiter als die base64-kodierte Darstellung des Textes mit der Datumsangabe. In diesem Fall reicht diese eine Zeile aus, aber es können auch *viel* mehr sein. Damit man das Ende sicher erkennen kann, folgt darauf eine Zeile mit einer Abschlußmarkierung: ==== Das alles findet uudecode also in seiner Eingabe, erkennt am richtigen Format, daß es damit was anfangen kann, dekodiert den Dateiinhalt, speichert ihn in einer Datei mit dem angegebenen Dateinamen und verpaßt dieser Datei die angegebenen Rechte. Eilert -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Eilert Brinkmann -- Universitaet Bremen -- FB 3, Informatik eilert@informatik.uni-bremen.de - eilert@tzi.org http://www.informatik.uni-bremen.de/~eilert/