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

dd mit obs und seek erzeugt eine Datei von unerwarteter Größe

Ihr Befehl dd if=/dev/zero of=./foo count=1 bs=1 obs=9 seek=1 erstellt eine Zwei-Byte-Datei anstelle einer 10-Byte-Datei aufgrund einer schlecht definierten Interaktion zwischen bs und obs . (Nennen Sie dies einen Programmfehler, wenn Sie möchten, aber es ist wahrscheinlich besser als Dokumentationsfehler definiert.) Sie sollten beides verwenden bs oder ibs und obs .

Empirisch zeigt sich, dass bs überschreibt obs , also wird dd if=/dev/zero of=./foo count=1 bs=1 seek=1 ausgeführt , wodurch eine Zwei-Byte-Datei erstellt wird, wie Sie gesehen haben.

Wenn Sie dd if=/dev/zero of=./foo count=1 ibs=1 obs=9 seek=1 verwendet hätten Sie hätten wie erwartet eine 10-Byte-Datei erhalten.

Wenn Sie alternativ eine leere Datei erstellen möchten, die keinen Speicherplatz auf der Festplatte belegt, können Sie den widersprüchlich benannten truncate verwenden Befehl:

truncate --size=10 foo

Auf der POSIX-Manpage steht:

ibs=Ausdruck

Geben Sie die Eingangsblockgröße in Bytes mit expr an (Standard ist 512).

obs=Ausdruck

Geben Sie die Größe des Ausgangsblocks in Bytes mit expr an (Standard ist 512).

bs=Ausdruck

Legen Sie sowohl Eingabe als auch Ausgabe fest Blockgrößen in expr Bytes, supersedingibs=und obs= . Wenn keine andere Konvertierung als sync, noerror und notrunc angegeben ist, soll jeder Eingabeblock als einzelner Block in die Ausgabe kopiert werden, ohne kurze Blöcke zu aggregieren.

dd von Linux funktioniert genauso. Verwenden Sie daher ibs stattdessen:

dd if=/dev/zero of=./foo count=1 ibs=1 obs=9 seek=1

Linux
  1. Finden Sie Dateien und Verzeichnisse unter Linux mit dem Befehl find

  2. Verkleinern Sie die PDF-Größe mit diesem Befehlszeilentrick

  3. Linux-Löschdatei mit Größe 0

  4. Ein Video mit gstreamer und gst-launch loopen?

  5. Mounten Sie mit sshfs und schreiben Sie Dateiberechtigungen

Linux Zip- und Unzip-Befehl mit Beispielen

Erläuterung von Soft Link und Hard Link in Linux anhand von Beispielen

Bearbeiten von Text mit sed und grep

Wie man mit Hardlinks und Softlinks unter Linux arbeitet

So arbeiten Sie mit File and Shell Provisioner in Vagrant

Verwalten Sie Verzeichnis- und Dateiberechtigungen mit chmod Recursive