写零命令

写零命令

我对用于写入零的命令有疑问

通常是: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,但现在总是如此)

相关内容