(convert and copy a file)
Mit dd können Sie Dateien kopieren und dabei konvertieren, z.B von EBCDIC nach ASCII oder umgekehrt.
Da das Kommando dd in beliebigen Block-Größen lesen und schreiben kann, eignet es sich gut für die Ein- und Ausgabe über im Raw-Modus betriebene Geräte (raw devices). Allerdings ist darauf zu achten, dass 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 Diskettenlaufwerke). 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.
Achtung!
Verwenden Sie dd nie zum Kopieren von Dateien zwischen Dateisystemen 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.
Syntax
dd[ option ...] |
Keine Option angegeben: dd liest von der Standard-Eingabe und gibt auf die Standard-Ausgabe aus. dd führt keine Konvertierungen durch. Die Größe der Eingabe-Blöcke und der Ausgabe-Blöcke beträgt jeweils 512 Byte.
Name der Eingabe-Datei
Name der Ausgabe-Datei
Größe der Eingabe-Blöcke in Byte
Größe der Ausgabe-Blöcke in Byte
Größe der Ein-und Ausgabe-Blöcke in Byte
Größe des Konvertierungspuffers in Byte
Überspringen der ersten n Blöcke der Eingabe-Datei
Überspringen der ersten n Blöcke der Eingabe-Datei
Kopie der Eingabe-Datei ab
Kopie der Eingabe-Datei ab
Die ersten
Angabe mehrere Werte für conv
Konvertierung von EBCDIC nach ASCII
Konvertierung von ASCII nach EBCDIC
Konvertierung von ASCII nach Siemens-spezifischen EBCDIC
Konvertierung von ASCII nach IBM-spezifischen EBCDIC
Konvertierung von Sätzen, die mit Neue-Zeile-Zeichen abgeschlossen sind in Sätze mit fester Satzlänge
Konvertierung von Sätzen mit fester Satzlänge in Sätze, die mit Neue-Zeile-Zeichen abgeschlossen sind
Umwandlung von Großbuchstaben in Kleinbuchstaben
Umwandlung von Kleinbuchstaben in Großbuchstaben
Vertauschen zweier aufeinanderfolgender Byte
Bearbeitung trotz Fehler fortsetzen
Auffüllen der Eingabe-Blöcke auf die in ibs=n festgelegte Anzahl Zeichen
Ende der Ausgabedatei bleibt erhalten Wenn eine Option Größenangaben verlangt, können Sie diese auf folgende Weise machen:
(if - input file) Für eingabedatei geben Sie den Namen der Eingabe-Datei an, aus der dd lesen soll. if=eingabedatei nicht angegeben:
(of - output file) Für ausgabedatei geben Sie den Namen der Ausgabe-Datei an, in die dd schreiben soll. of=ausgabedatei nicht angegeben:
(ibs - input block size) Für n geben Sie die Größe der Eingabe-Blöcke in Byte an. ibs=n nicht angegeben:
(obs - oputput block size) Für n geben Sie die Größe der Ausgabe-Blöcke in Byte an. obs=n nicht angegeben:
(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.
(cbs - conversion buffer size) Für n geben Sie die Größe des Konvertierungspuffers in Byte an. Diese Angabe ist nur in folgenden Fällen wirksam:
(siehe conv=ascii, conv=ebcdic conv=ibm und conv=block, conv=unblock).
Die ersten n Blöcke der Eingabe-Datei werden übersprungen und die Bearbeitung beginnt erst beim Block n+1.
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).
Die ggf. 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
seek hat die gleiche Funktion wie oseek.
Es werden nur die ersten n Blöcke der Eingabe-Datei kopiert und, falls angegeben, konvertiert.
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.
Konvertierung von EBCDIC nach ASCII. Die durch cbs=n festgelegte Anzahl von Zeichen wird jeweils in den Konvertierungspuffer kopiert und eventuell angegebene Zeichenumwandlungen 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 angepasst. Haben Sie die cbs-Option nicht oder mit cbs=0 angegeben, wird die Eingabe-Datei nur konvertiert und am Zeilenende werden keine Leerzeichen gelöscht.
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 angepasst. Haben Sie die Option cbs nicht oder mit cbs=0 angegeben, wird die Eingabe-Datei nur konvertiert, ihre Blockstruktur wird jedoch nicht verändert.
Konvertierung von ASCII nach EBCDIC wie oben beschrieben, wobei eine Siemens-spezifische EBCDIC-Tabelle verwendet wird. Das Newline-Zeichen wird wiefolgt konvertiert: X'0A' <-> X'05' .
Konvertierung von ASCII nach EBCDIC wie oben beschrieben, wobei eine IBM-spezifische EBCDIC-Tabelle verwendet wird.
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 festgelegten Wert angepasst. Haben sie die Option cbs nicht oder mit cbs=0 angegeben, wird die Eingabe-Datei nur konvertiert.
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 jedesmal in den Konvertierungspuffer geladen, am Zeilenende überschüssige 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.
Großbuchstaben werden in die entsprechenden Kleinbuchstaben verwandelt.
Kleinbuchstaben werden in die entsprechenden Großbuchstaben verwandelt.
Jeweils zwei aufeinanderfolgende Byte werden vertauscht. Enthält ein Eingabeblock eine ungerade Anzahl Bytes, wird das letzte Byte ignoriert.
Die Bearbeitung wird beim Auftreten eines Fehlers nicht beendet.
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.
Die Ausgabedatei wird nicht neu erzeugt. Alle Blöcke, die nicht explizit von dd überschrieben werden, bleiben unverändert erhalten. |
Internationale Umgebung
Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos dd: LANG Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden. LC_ALL Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen. LC_CTYPE Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien) sowie die Einteilung der Zeichen in Groß- und Kleinbuchstaben und deren Übereinstimmung. LC_MESSAGES Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden. NLSPATH Legt den Pfad der Meldungsdateien für LC_MESSAGES fest. |
Beispiel
Der Inhalt eines EBCDIC-Magnetbandes mit einer Blockstruktur von 10 mal 80 Byte wird in die ASCII-Datei xy geschrieben:
|
Siehe auch
cp |