aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cli/dd.md
diff options
context:
space:
mode:
Diffstat (limited to 'src/cli/dd.md')
-rw-r--r--src/cli/dd.md46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/cli/dd.md b/src/cli/dd.md
new file mode 100644
index 0000000..709cfa0
--- /dev/null
+++ b/src/cli/dd.md
@@ -0,0 +1,46 @@
+# dd(1)
+
+Copy data `block-wise`.
+
+```
+dd [opts]
+ if=<path> input file to read (stdin in case not specified)
+ of=<path> oputput file to write
+ status=progress show progress while copying
+ bs=<bytes> block size
+ count=<n> copy only <n> blocks
+ skip=<n> skip <n> blocks in input (seek input)
+ seek=<n> skip <n> blocks in oputput (seek output)
+ conv=<conv>
+ notrunc dont truncate output file
+ excl fail if output already exists
+ nocreat fail if output does not exists
+```
+
+## Example: bootstick
+
+```bash
+dd bs=4M if=<iso> of=<blkdev> oflag=sync status=progress
+```
+
+## Example: patch file in place
+
+```bash
+# Create a 1024 bytes file filled with zeros.
+dd if=/dev/zero of=disk bs=512 count=2
+
+# Overwrite 4 bytes starting at byte 0.
+printf "aaaa" | dd of=disk bs=1 seek=0 conv=notrunc
+
+# Overwrite 4 bytes starting at byte 512.
+printf "bbbb" | dd of=disk bs=1 seek=512 conv=notrunc
+
+hexdump disk
+# 0000000 6161 6161 0000 0000 0000 0000 0000 0000
+# 0000010 0000 0000 0000 0000 0000 0000 0000 0000
+# *
+# 0000200 6262 6262 0000 0000 0000 0000 0000 0000
+# 0000210 0000 0000 0000 0000 0000 0000 0000 0000
+# *
+# 0000400
+```