La dimensione del blocco che dd
elaborerà count
di è determinata dall'argomento bs
( ibs
, obs
) a dd
:
bs=BYTES
read and write up to BYTES bytes at a time (default: 512);
overrides ibs and obs
Questo è per questa nuova pagina man ; quando ho imparato su SunOS 4 era più chiaro che "bs" era per "dimensione del blocco":
bs=n
Sets both input and output block sizes to n bytes, superseding ibs= and obs=. If
no conversion other than sync,noerror , and notrunc is specified, each input
block is copied to the output as a single block without aggregating short blocks.
Come puoi vedere in questa risposta le prime versioni di Unix utilizzavano un "blocco" di 512 byte, o unità di allocazione, nei filesystem. Ecco perché il valore corrente per dd
bs
è ancora 512 byte!
Puoi anche specificare altre unità di misura; ad esempio, bs=5M
per avere una dimensione di blocco di 5 Megabyte:
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.
Nel tuo caso, a prescindere dal bs
impostato, se scegli count=0
non scriverai nulla! Se lasci bs
non impostato e scegli count=1
, scriverai 512 byte.
Questo controllo rigoroso sulle "dimensioni del blocco" ha molto più senso quando si ha a che fare con nastri o altri dispositivi sequenziali e limitati. Se scrivi blocchi da 128k di dati su un'unità a nastro con 64k di dimensione del blocco, hai appena perso metà dei tuoi dati! Scrivere su un file (sistema), a differenza di un dispositivo reale, è molto più indulgente nell'allocare lo spazio per qualsiasi cosa tu voglia dargli.