我对用于写入零的命令有疑问
通常是:sudo dd if=/dev/zero of=/dev/null
但我在一些网站上发现了这一点:sudo dd if=/dev/zero of=/dev/null bs=1M
或者 sudo dd if=/dev/zero of=/dev/null bs=8M
bs=1M
您能解释一下和的效果bs=8M
吗?
答案1
不要这样做,sudo
除非您真的知道自己在做什么,否则这会很容易损坏您的磁盘。
你可能指的是bs
块大小:
[romano:~/tmp] % dd if=/dev/zero of=test.dat sb=10
dd: unrecognised operand ‘sb=10’
Try 'dd --help' for more information.
bs
表示以dd
您指定大小的块进行写入和读取。1M
表示 1 Mbyte。
⌂66% [romano:~/tmp] 1 % dd if=/dev/zero of=test.dat bs=10
^C959453+0 records in
959452+0 records out
9594520 bytes (9.6 MB) copied, 1.06318 s, 9.0 MB/s
sb
不存在。您可以在 中找到所有这些(以及更多)man dd
。
答案2
dd 可能相当危险,它的名字的一个很好的缩写是“数据毁灭者”,它可以用最轻微的拼写错误覆盖任何驱动器。
man dd
或者info coreutils 'dd invocation'
应该告诉您所有您曾经(从未?)想知道的有关使用的信息dd
,并且 man 也应该适用于几乎任何终端程序。
没有 dd 选项sb=
,但有一个bs=
bs=BYTES
read and write up to BYTES bytes at a time
Set both input and output block sizes to BYTES. This makes `dd'
read and write BYTES per block, overriding any `ibs' and `obs'
settings. In addition, if no data-transforming `conv' option is
specified, input is copied to the output as soon as it's read,
even if it is smaller than the block size.
...
N and BYTES may be followed by the following multiplicative suffixes: c
=1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M
GB =1000*1000*1000, G =1024*1024*1024, and so on for T, P, E, Z, Y.
The numeric-valued strings above (N and BYTES) can be followed by a
multiplier: `b'=512, `c'=1, `w'=2, `xM'=M, or any of the standard block
size suffixes like `k'=1024 (*note Block size::).
答案3
它bs
不是sb
…
为了未来:如果您想知道某个命令的作用,请从终端输入:
man NameOfCommand
在这种情况下,你会发现:
DD(1) User Commands DD(1)
NAME
dd - convert and copy a file
SYNOPSIS
dd [OPERAND]...
dd OPTION
DESCRIPTION
Copy a file, converting and formatting according to the operands.
bs=BYTES
read and write up to BYTES bytes at a time
因此,这些命令以 1MByte 和 8MByte 的块进行写入,而不是标准扇区大小(大多数情况下为 512bytes,但现在总是如此)