Binärdaten per Mail (oder News) versenden
Da nach wie vor 7-Bit-ASCII als kleinster gemeinsamer Standard fürNews und Mail gilt, lassen sich Binärdateien nicht ohne weiteres posten.Abhilfe schaffen hier die Programme UUENCODE und UUDECODE, mit deren Hilfebinäre Daten auf den Bereich der druckbaren ASCII-Zeichen (Großbuchstaben,Ziffern und Sonderzeichen) abbilden lassen. Es werden also Bytes in 6-Bit-Wortencodiert und in Zeilen umbrochen. Die mit UUENCODE erzeugte Datei ist nunzwar größer als die Ursprungsdatei, sie läßt sichaber problemlos per News oder Mail verbreiten. Die "uuencodete" Datei enthältam Anfang eine Zeile mit Zugriffsrechte und den Dateinamen:
begin 644 camera.wav
Danach folgen die codierten Daten und als Abschluß eine Zeile
end
Eine weitere Form der Codierung findet man bei der Verbreitung von Programmquellen
und anderen zusammengehörenden Texten (Programmquellen bestehen in
der Regel aus mehreren Quelldateien, Manualpages, Makefile, usw.). Diese
Dateien kann man zu sogenannten 'Shell-Archiven' zusammenfassen. Hier wird
ein komplettes Shell-Skript gepostet, das die Dateien in Form einzelner
Here-Dokumente enthält. Man startet das Skript, wodurch die einzelnen
Dateien ausgepackt und meist auch noch auf Korrektheit (Prüfsumme)
geprüft werden. Hier als Beispiel der Anfang eines Shell-Archivs:
#! /bin/sh
# This is a shell archive. Remove anything before this line, then
# feed it into a shell via "sh file" or similar. To overwrite
# existing files, type "sh file -c".
# Contents: bells.sh hells-bells.au.uu
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
echo If this archive is complete, you will see the following message:
echo ' "shar: End of archive."'
if test -f 'bells.sh' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'bells.sh'\"
else
echo shar: Extracting \"'bells.sh'\" \(581 characters\)
sed "s/^X//" >'bells.sh' <<'END_OF_FILE'
X#!/bin/
X
XBELL=/usr/local/sounds/hells-bells.au
XPLAY=/usr/local/bin/play
XVOL=40 XDATE=`date +%H:%M`
XMINUTE=`echo $DATE
| sed -e 's/.*://'`
XHOUR=`echo $DATE | sed -e 's/:.*//'`
X
....
Um mehrere Dateien in einer einzigen zusammenzufassen verwendet man
in der Regel das tar-Kommando (Tape ARchive), nur wird hier nicht auf das
Band geschrieben, sondern alle Dateien und Verzeichnisse in eine einzige
Datei geschrieben (Option "f"). Analog kann ein Archiv dann wieder "ausgepackt"
werden.
tar cvf datei(en) archiv | Archiv erzeugen (c = create) |
tar xvf archiv | Archiv auspacken (x = extract) |
tar tvf archiv | Archiv ansehen |
(das "v" steht wieder mal für "verbose")
Um z. B. alle Dateien des Verzeichnisses 'bin' (und dessen Unterverzeichnisse) in
einem Archiv zu sichern, geben das Kommando:
tar cvf bin binaeres.tar
tar kann aber auch verwendet werden, um ganze Dateibäume auf der Platte zu
verschieben:
(cd Quelldir ; tar cvf - ) | (cd Zieldir ; tar xvfp - )
Damit Übertragungszeit beim ftp gespart wird, kann man nun das Archiv noch
komprimieren, wozu bei fast allen Systemen die Kommandos pack/unpack bzw.
compress/uncompress existieren:
pack datei
komprimiert die Datei und ersetzt sie durch die komprimierte
Version, wobei an den Namen die Endung ".z" angehängt wird. Mit
unpack datei.z
wird die Datei wiederhergestellt.
compress datei
komprimiert die Datei und ersetzt sie durch die komprimierte
Version, wobei an den Namen die Endung ".Z" angehängt wird. Mit
uncompress datei.Z
wird die Datei wiederhergestellt, wobei das Ergebnis
von compress wesentlich kompakter als bei pack ist.
In letzter Zeit wurde der GNU-Zip zum Standard. Er liefert bessere Ergebnisse
als compress und kann auch mit pack oder compress bearbeitete Dateien bearbeiten.
Die Aufrufe lauten:
gzip datei
zum Komprimieren und
gunzip datei oder gzip -d datei
zum Dekomprimieren.
|