escreve o comando zeros

2

Eu tenho uma pergunta sobre o comando usado para escrever zeros

normalmente é: sudo dd if=/dev/zero of=/dev/null

mas em alguns sites eu encontrei isto: sudo dd if=/dev/zero of=/dev/null bs=1M

ou sudo dd if=/dev/zero of=/dev/null bs=8M

Você poderia explicar os efeitos de bs=1M e bs=8M ?

    
por user282638 30.11.2014 / 13:20

3 respostas

3

não faça isso especialmente com sudo , a menos que você REALMENTE saiba o que está fazendo, isso destruirá seus discos facilmente.

Você provavelmente quis dizer bs , tamanho do bloco:

[romano:~/tmp] % dd if=/dev/zero of=test.dat sb=10
dd: unrecognised operand ‘sb=10’
Try 'dd --help' for more information.

bs significa que dd grava e lê em blocos o tamanho especificado. 1M significa 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 não existe. Você pode encontrar tudo isso (e mais) em man dd .

    
por Rmano 30.11.2014 / 13:32
2

dd pode ser bastante perigoso, uma boa sigla para seu nome é "Data Destroyer", ele pode sobrescrever qualquer drive com o menor erro de digitação.

man dd ou info coreutils 'dd invocation' deve lhe dizer tudo o que você (nunca?) queria saber sobre o uso de dd , e o homem deve trabalhar para praticamente qualquer programa terminal também.

Não há uma opção dd sb= , embora exista um 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::).
    
por Xen2050 30.11.2014 / 13:33
2

É bs , não sb

Para o futuro: se você quiser saber o que um comando faz, a partir do tipo de terminal:

man NameOfCommand

Nesse caso, você teria encontrado:

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

Portanto, esses comandos escrevem em blocos de 1MByte e 8MByte em vez do tamanho padrão do setor (512bytes na maioria das vezes, mas agora sempre)

    
por Fabby 30.11.2014 / 13:35