dd(1) dd(1)
NAME
dd - Dateien kopieren und konvertieren
SYNTAX
dd [option ...]
BESCHREIBUNG
Mit dd können Sie Dateien kopieren und dabei konvertieren, z. B. von
EBCDIC nach ASCII oder umgekehrt.
Da das Kommando dd in beliebigen Blockgrößen lesen und schreiben kann,
eignet es sich gut für die Ein- und Ausgabe über im Raw-Modus betrie-
bene Geräte (raw devices). Allerdings ist darauf zu achten, daß "raw
devices" nur mit Blockgrößen beschrieben werden können, die für das
betreffende Gerät spezifisch sind (z. B. 512 Byte für Diskettenlauf-
werke). Wenn die zu konvertierende Dateigröße nicht ein Vielfaches der
spezifischen Blockgröße ist, müssen Sie die Option conv=sync angeben.
Nach beendeter Bearbeitung gibt dd die Zahl der ganzen Blöcke und der
Teil-Blöcke, die eingelesen bzw. ausgegeben wurden, auf die Standard-
fehlerausgabe aus.
Vorsicht:
Verwenden Sie dd nie zum Kopieren von Dateien zwischen Dateisy-
stemen mit unterschiedlicher Blockgröße.
Wenn Sie ein blockorientiertes Gerät (block device) zum Kopieren
der Datei verwenden, dann wird der letzte Block möglicherweise
durch Null-Bytes bis zur Blockgröße aufgefüllt.
OPTIONEN
______________________________________________________________________
| Option | Kurzbeschreibung |
|_________________|___________________________________________________|
| if=eingabedatei | Name der Eingabe-Datei |
|_________________|___________________________________________________|
| of=ausgabedatei | Name der Ausgabe-Datei |
|_________________|___________________________________________________|
| ibs=n | Größe der Eingabe-Blöcke in Byte |
|_________________|___________________________________________________|
| obs=n | Größe der Ausgabe-Blöcke in Byte |
|_________________|___________________________________________________|
| bs=n | Größe der Ein- und Ausgabe-Blöcke in Byte |
|_________________|___________________________________________________|
| cbs=n | Größe des Konvertierungsblocks in Byte |
|_________________|___________________________________________________|
| files=n | Anzahl der Dateien, die kopiert und aneinanderge-|
| | fügt werden |
|_________________|___________________________________________________|
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
dd(1) dd(1)
______________________________________________________________________
| Option | Kurzbeschreibung |
|_________________|___________________________________________________|
| skip=n | Überspringen der ersten n Blöcke der Eingabe- |
| | Datei |
|_________________|___________________________________________________|
| iseek=n | Überspringen der ersten n Blöcke der Eingabe- |
| | Datei |
|_________________|___________________________________________________|
| oseek=n | Kopie der Eingabe-Datei ab n+1 Blöcken der |
| | Ausgabe-Datei |
|_________________|___________________________________________________|
| seek=n | Kopie der Eingabe-Datei ab n+1 Blöcken der |
| | Ausgabe-Datei |
|_________________|___________________________________________________|
| count=n | Die ersten n Blöcke der Eingabe-Datei |
| | kopieren/konvertieren |
|_________________|___________________________________________________|
| conv=...,... | Angabe mehrere Werte für conv |
|_________________|___________________________________________________|
| conv=ascii | Konvertierung von EBCDIC nach ASCII |
|_________________|___________________________________________________|
| conv=ebcdic | Konvertierung von ASCII nach EBCDIC |
|_________________|___________________________________________________|
| conv=ibm | Konvertierung von ASCII nach IBM-spezifischen |
| | EBCDIC |
|_________________|___________________________________________________|
| conv=block | Konvertierung von Sätzen, die mit Neue-Zeile- |
| | Zeichen abgeschlossen sind, in Sätze mit fester |
| | Satzlänge |
|_________________|___________________________________________________|
| conv=unblock | Konvertierung von Sätzen mit fester Satzlänge in |
| | Sätze, die mit Neue-Zeile-Zeichen abgeschlossen |
| | sind |
|_________________|___________________________________________________|
| conv=lcase | Umwandlung von Großbuchstaben in Kleinbuchstaben |
|_________________|___________________________________________________|
| conv=ucase | Umwandlung von Kleinbuchstaben in Großbuchstaben |
|_________________|___________________________________________________|
| conv=swab | Vertauschen zweier aufeinanderfolgender Bytes |
|_________________|___________________________________________________|
| conv=noerror | Bearbeitung trotz Fehler fortsetzen |
|_________________|___________________________________________________|
| conv=sync | Auffüllen der Eingabe-Blöcke auf die in ibs=n |
| | festgelegte Anzahl Zeichen |
|_________________|___________________________________________________|
| conv=notrunc | Ende der Ausgabedatei bleibt erhalten |
|_________________|___________________________________________________|
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
dd(1) dd(1)
Keine Option angegeben:
dd liest von der Standardeingabe und gibt auf die Standardausgabe
aus. dd führt keine Konvertierungen durch. Die Größe der
Eingabe-Blöcke und der Ausgabe-Blöcke beträgt jeweils 512 Byte.
Wenn eine Option Größenangaben verlangt, können Sie diese auf folgende
Weise machen:
n bedeutet n mal 1
nb bedeutet n mal 512
nk bedeutet n mal 1024
nw bedeutet n mal 2
nxm bedeutet n mal m
n*m bedeutet n mal m
if=eingabedatei
(if - input file) Für eingabedatei geben Sie den Namen der
Eingabe-Datei an, aus der dd lesen soll.
if=eingabedatei nicht angegeben:
dd liest von der Standardeingabe.
of=ausgabedatei
(of - output file) Für ausgabedatei geben Sie den Namen der
Ausgabe-Datei an, in die dd schreiben soll.
of=ausgabedatei nicht angegeben:
dd schreibt auf die Standardausgabe.
ibs=n
(ibs - input block size) Für n geben Sie die Größe der Eingabe-
Blöcke in Byte an.
ibs=n nicht angegeben:
Die Größe der Eingabe-Blöcke ist 512 Byte.
obs=n
(obs - oputput block size) Für n geben Sie die Größe der Ausgabe-
Blöcke in Byte an.
obs=n nicht angegeben:
Die Größe der Ausgabe-Blöcke ist 512 Byte.
bs=n
(bs - block size) Für n geben Sie die Größe der Eingabe- und
Ausgabe-Blöcke in Byte an. Die Angabe von bs hebt die Angaben für
ibs und obs auf.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
dd(1) dd(1)
bs=n nicht angegeben:
Die Eingabe-Blockgröße bleibt auch für die Ausgabe erhalten, kleine
Eingabe-Blöcke werden nicht im Ausgabepuffer gepackt (dies ist
besonders effizient, da intern kein weiteres Kopieren mehr nötig
ist).
cbs=n
(conversion block size) Geben Sie die Größe des Konvertierungs-
blocks für block und unblock in Byte mit n an. (Der Standardwert
ist Null.) Wenn cbs=n nicht angegeben oder der Wert Null zugeordnet
wird, erzeugt die Verwendung von block oder unblock undefinierte
Ergebnisse.
Dieser Operand muß auch angegeben werden, wenn der Operand conv=
mit den Werten ascii, ebcdic oder ibm angegeben wird. Bei dem Ope-
randen conv= mit dem Wert ascii wird die Eingabe wie für den Wert
unblock beschrieben bearbeitet, außer daß Zeichen nach ASCII kon-
vertiert werden, bevor nachfolgende Leerzeichen gelöscht werden.
Bei dem Operanden conv= mit den Werten ebcdic oder ibm wird die
Eingabe wie für den Wert block beschrieben bearbeitet, außer daß
Zeichen nach EBCDIC bzw. IBM EBCDIC konvertiert werden, nachdem
nachfolgende Leerzeichen hinzugefügt wurden
Siehe conv=ascii, conv=ebcdic, conv=ibm und conv=block,
conv=unblock.
files=n
Für n geben Sie eine Anzahl von Dateien an. Diese werden eingele-
sen, kopiert und aneinandergefügt. Danach beendet dd die Bearbei-
tung.
Die Verwendung dieser Option ist nur dann sinnvoll, wenn die Ein-
gabe von einem Magnetband oder einem ähnlichen Gerät (z. B. Strea-
merband) gelesen wird.
skip=n
Die ersten n Blöcke der Eingabe-Datei werden übersprungen, und die
Bearbeitung beginnt erst beim Block n+1.
Diese Option ist nur für Magnetbandgeräte geeignet, für die iseek
nicht definiert ist.
iseek=n
Die ersten n Blöcke der Eingabe-Datei werden übersprungen, und die
Bearbeitung beginnt erst beim Block n+1. Diese Option ist speziell
für die Bearbeitung von Plattendateien gedacht, da skip hier zu
langsam ist. Diese Option ist nur für Geräte zulässig, die den
lseek-Systemaufruf unterstützen (z. B. Plattengeräte).
skip und iseek schließen sich gegenseitig aus.
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
dd(1) dd(1)
oseek=n
Die gegebenenfalls konvertierte Kopie der Eingabe-Datei beginnt
erst beim n+1-ten Block der Ausgabe-Datei. Die ersten n Blöcke der
Ausgabe-Datei bleiben unverändert erhalten. Diese Option ist nur
für Geräte zulässig, die den lseek-Systemaufruf unterstützen (z. B.
Plattengeräte).
seek=n
seek hat die gleiche Funktion wie oseek.
count=n
Es werden nur die ersten n Blöcke der Eingabe-Datei kopiert und,
falls angegeben, konvertiert. Ist n = 0, wird die gesamte Datei
kopiert.
conv=...,...
Sie können für conv mehrere Werte, durch Kommas voneinander
getrennt, angeben und so mehrere Konvertierungen herbeiführen.
Die Werte ascii, ebcdic und ibm können nicht gleichzeitig angegeben
werden. Dasselbe gilt für die Wertepaare block und unblock, sowie
lcase und ucase.
conv=ascii
Konvertierung von EBCDIC nach ASCII.
Die durch cbs=n festgelegte Anzahl von Zeichen wird jeweils in den
Konvertierungspuffer kopiert, und eventuell angegebene Zeichenum-
wandlungen werden ausgeführt. Leerzeichen am Zeilenende werden
gelöscht, und ein Neue-Zeile-Zeichen wird eingefügt. Damit wird die
Größe der Ausgabeblöcke der Datei an den durch cbs=n festgelegten
Wert angepaßt. Haben Sie die cbs-Option nicht oder mit cbs=0 ange-
geben, wird die Eingabe-Datei nur konvertiert, und am Zeilenende
werden keine Leerzeichen gelöscht.
conv=ebcdic
Konvertierung von ASCII nach EBCDIC.
Die ASCII-Zeichen werden in den Konvertierungspuffer gelesen und
nach EBCDIC konvertiert. Die Ausgabeblockgröße wird durch Hinzufü-
gen von Leerzeichen an den durch cbs=n festgelegten Wert angepaßt.
Haben Sie die Option cbs nicht oder mit cbs=0 angegeben, wird die
Eingabe-Datei nur konvertiert, ihre Blockstruktur wird jedoch nicht
verändert.
conv=ibm
Konvertierung von ASCII nach EBCDIC wie oben beschrieben, wobei
eine IBM-spezifische EBCDIC-Tabelle verwendet wird.
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98
dd(1) dd(1)
conv=block
Durch Neue-Zeile-Zeichen abgeschlossene ASCII-Sätze werden in Sätze
mit fester Satzlänge konvertiert. Die ASCII-Zeichen werden in den
Konvertierungspuffer gelesen. Die Satzlänge oder Ausgabeblockgröße
wird durch Hinzufügen von Leerzeichen an den durch cbs=n festgeleg-
ten Wert angepaßt. Haben sie die Option cbs nicht oder mit cbs=0
angegeben, wird die Eingabe-Datei nur konvertiert.
conv=unblock
ASCII-Sätze mit fester Satzlänge werden in durch Neue-Zeile-Zeichen
abgeschlossene Sätze konvertiert. Die Satzlänge wird durch den mit
cbs=n festgelegten Wert bestimmt. Diese Anzahl Zeichen wird jedes-
mal in den Konvertierungspuffer geladen, am Zeilenende überschüs-
sige Leerzeichen werden gelöscht, und ein Neue-Zeile-Zeichen wird
eingefügt, bevor die Zeichen ausgegeben werden. Haben Sie die
Option cbs nicht oder mit cbs=0 angegeben, wird die Eingabe-Datei
nur konvertiert.
conv=lcase
Großbuchstaben werden in die entsprechenden Kleinbuchstaben verwan-
delt.
conv=ucase
Kleinbuchstaben werden in die entsprechenden Großbuchstaben verwan-
delt.
conv=swab
Jeweils zwei aufeinanderfolgende Bytes werden vertauscht. Enthält
ein Eingabeblock eine ungerade Anzahl Bytes, wird das letzte Byte
ignoriert.
conv=noerror
Die Bearbeitung wird beim Auftreten eines Fehlers nicht beendet.
conv=sync
Alle Eingabe-Blöcke werden auf die durch ibs=n festgelegte Anzahl
von Zeichen aufgefüllt. Bei Angabe von block oder unblock werden
Leerzeichen verwendet, sonst Null-Bytes.
conv=notrunc
Die Ausgabedatei wird nicht neu erzeugt. Alle Blöcke, die nicht
explizit von dd überschrieben werden, bleiben unverändert erhalten.
INTERNATIONALE UMGEBUNG
Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
texte. Wenn LCMESSAGES nicht oder als leere Zeichenkette definiert
ist, wird der Wert von LANG als Standardwert herangezogen. Ist auch
LANG nicht oder als leere Zeichenkette definiert, verhält sich das
System so, als wäre es nicht internationalisiert.
Seite 6 Reliant UNIX 5.44 Gedruckt 11/98
dd(1) dd(1)
Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
Bereich der Internationalisierung.
BEISPIELE
Der Inhalt eines EBCDIC-Magnetbandes mit einer Blockstruktur von 10
mal 80 Byte wird in die ASCII-Datei xy geschrieben:
$ dd if=/dev/rmt32 of=xy ibs=800 cbs=80 conv=ascii
SIEHE AUCH
cp(1).
Seite 7 Reliant UNIX 5.44 Gedruckt 11/98