GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux dd-Befehl für Anfänger erklärt (8 Beispiele)

Manchmal müssen Sie beim Arbeiten an der Befehlszeile unter Linux einen Kopiervorgang so durchführen, dass die Daten/der Text formatiert werden, bevor sie an das Ziel geschrieben werden. Ein einfaches Beispiel könnte sein, Text aus einer Datei zu kopieren und die Version mit geänderter Groß-/Kleinschreibung (von unten nach oben oder von oben nach unten) in die Zieldatei zu schreiben.

Wenn Sie nach einer Möglichkeit gesucht haben, dies zu tun, werden Sie froh sein zu wissen, dass es ein Befehlszeilenprogramm namens dd gibt - das ist für diesen Zweck gebaut. In diesem Tutorial werden wir die Funktionsweise des Tools anhand einiger leicht verständlicher Beispiele erläutern. Aber bevor wir das tun, sei erwähnt, dass alle hier genannten Beispiele auf Ubuntu 18.04LTS getestet wurden.

Linux-dd-Befehl

Kurz gesagt, der dd Mit dem Befehl können Sie eine Datei kopieren und konvertieren. Das Tool bietet einige Operanden, mit denen Sie angeben können, welche Art von Formatierung Sie möchten. Hier ist die generische Syntax des Befehls, wie auf seiner Manpage beschrieben:

dd [OPERAND]...
dd OPTION

Die folgenden Q&A-artigen Beispiele sollen Ihnen eine gute Vorstellung davon vermitteln, wie der dd-Befehl funktioniert.

Q1. Wie ändere ich die Groß-/Kleinschreibung von Eingabetext mit dem Befehl dd?

Angenommen, Sie haben einige Textzeilen, die in Kleinbuchstaben geschrieben sind, und die Anforderung besteht darin, sie schnell in Großbuchstaben umzuwandeln. Das können Sie mit conv tun Befehlszeilenoption (mit ucase als seinen Wert).

Hier ist ein Beispiel:

Der obige Screenshot zeigt den Befehl sowie den Eingabetext. Die Tastenkombination Strg+d wurde verwendet, um dd mitzuteilen, dass wir mit der Eingabe fertig sind, und sobald dies erledigt war, erzeugte der Befehl die folgende Ausgabe:

So können Sie sehen, dass der Eingabetext von Kleinbuchstaben in Großbuchstaben umgewandelt wurde. Die letzten drei Zeilen sind nur einige betriebsbezogene Statistiken.

Hinweis :Ebenso können Sie den Wert lcase verwenden um Großbuchstaben in Kleinbuchstaben umzuwandeln.

Q2. Wie kann man stattdessen aus Dateien lesen und in Dateien schreiben?

Im ersten obigen Beispiel haben wir den Text über stdin (Standardeingabe) eingegeben. Sie können jedoch immer Eingabe- und Ausgabedateien verwenden. Um Namen von Eingabe- und Ausgabedateien anzugeben, verwenden Sie das if und von Befehlszeilenoptionen.

Wenn Sie beispielsweise den Text in Datei1 umwandeln und ihn dann in Datei2 schreiben lassen möchten, können Sie dies folgendermaßen tun:

dd if=file1 of=file2 conv=ucase

Q3. Wie überspringe ich Text beim Lesen von Eingaben?

Wenn Sie möchten, können Sie dd bitten, einige anfängliche Bytes zu überspringen, während der Eingabetext gelesen wird. Dies kann mit Überspringen erfolgen Option, die einen numerischen Wert erfordert. Wenn dieser Wert beispielsweise 'N' ist, dann überspringt dd N ibs-große Blöcke am Beginn der Eingabe. Das bringt uns zu 'ibs', einer weiteren Befehlszeilen-DD-Option, deren Wert die Anzahl der Bytes angibt, die das Tool gleichzeitig liest (Standard ist 512).

Angenommen, Sie möchten die ersten 4 Bytes einer Eingabedatei überspringen, dann sollten Sie zuerst ibs setzen bis 4 und verwenden Sie dann 1 als Wert für skip . Dadurch wird sichergestellt, dass das Tool beim Lesen der Eingabedatei einen Block von 4 Bytes überspringt.

So können Sie sehen, dass der Text Hey, wurde beim Lesen von Datei1 übersprungen - deshalb erschien es nicht in Datei2.

Q4. Wie tausche ich jedes Paar von Eingabebytes in der Ausgabe aus?

Wenn es eine solche Anforderung gibt, können Sie auch dd verwenden, um jedes Paar von Eingabebytes auszutauschen. Dies kann mit einem Tupfer erreicht werden als Wert für die Conv Befehlszeilenoption. Der folgende Screenshot wird die Dinge klarer machen:

F5. Wie kann man dd nur funktionieren lassen, wenn die Ausgabedatei noch nicht existiert?

Wenn die Anforderung lautet, dass der dd-Befehl nichts tun soll, wenn die Ausgabedatei bereits vorhanden ist, kann diese Bedingung mit excl erzwungen werden Wert für die Conv Option.

Der folgende Screenshot zeigt den Anwendungsfall in Aktion:

F6. Wie stelle ich sicher, dass die Ausgabedatei im Anhängemodus aktualisiert wird?

Standardmäßig überschreibt dd einfach die Ausgabedatei (falls vorhanden). Wenn Sie jedoch möchten, dass der Text stattdessen angehängt wird, verwenden Sie den Wert append für oflag FLAG und notrunc für Conv Option.

Zum Beispiel:

dd if=file1 of=file3 oflag=append conv=notrunc

Hier ist der obige Befehl in Aktion:

Q7. Wie kann man dd dazu bringen, keine Ausgabedatei zu erstellen?

Wenn Sie möchten, können Sie den dd-Befehl auch dazu zwingen, keine Ausgabedatei zu erstellen, wenn die im Befehl angegebene Datei noch nicht existiert. Dies kann mit nocreat erfolgen Wert der Conv Befehlszeilenoption.

Zum Beispiel:

Q8. Wie kontrolliere ich die Informationsmenge, die auf stderr gedruckt wird?

Wenn Sie möchten, können Sie auch die Menge an Informationen begrenzen, die der Befehl auf stderr ausgibt. Dies kann über den Status erfolgen Befehlszeilenoption. Wenn Sie beispielsweise alles außer Fehlermeldungen unterdrücken möchten, können Sie den Wert none übergeben zu dieser Befehlszeilenoption:

dd if=file1 of=file3 status=none

Andere verfügbare Werte sind noxfer und Fortschritt . Hier ist, was die Manpage über den Status sagt Möglichkeit:

status=LEVEL
              The  LEVEL  of information to print to stderr; 'none' suppresses
              everything but error messages,  'noxfer'  suppresses  the  final
              transfer  statistics, 'progress' shows periodic transfer statis?
              tics

Schlussfolgerung

Die in diesem Tutorial besprochenen Beispiele kratzen nur an der Oberfläche, wenn es darum geht, zu untersuchen, was der dd-Befehl alles kann. Nur um Ihnen eine Vorstellung zu geben, Sie können mit dem Tool virtuelle Dateisysteme sowie Backups von Festplatten oder Systempartitionen erstellen. Weitere Informationen zu dd finden Sie auf seiner Manpage.


Linux
  1. Linux-Einfügebefehl für Anfänger erklärt (5 Beispiele)

  2. Linux wc Befehl für Anfänger erklärt (6 Beispiele)

  3. Linux-Unexpand-Befehl für Anfänger erklärt (mit Beispielen)

  4. Linux-Exit-Befehl für Anfänger erklärt (mit Beispielen)

  5. Linux-objdump-Befehl für Anfänger erklärt (7 Beispiele)

Linux-rm-Befehl für Anfänger erklärt (8 Beispiele)

Linux cut Befehl für Anfänger erklärt (mit Beispielen)

Linux-Timeout-Befehl für Anfänger erklärt (mit Beispielen)

Linux-mv-Befehl für Anfänger erklärt (8 Beispiele)

Linux-md5sum-Befehl für Anfänger erklärt (5 Beispiele)

Linux-Host-Befehl für Anfänger erklärt (8 Beispiele)