Te polecenia zastąpią twoje urządzenie sda zerami - pierwsze zrobi pierwsze 16 MB (rozmiar bloku 4096 i liczba 4096 bloków), a drugie zastąpi ostatnie 2 MB (rozmiar bloku 512 z 4096 bloków) zerami. (nie jest technicznie wymazywany, a to odnosi się do mojego pierwszego punktu poniżej).
(to była część wspomniana już w innych odpowiedziach, w tym tutaj dla kompletności)
Inną rzeczą, o której warto wspomnieć, jest to, że rozmiar bloku ma efekty, ale na ogół są one widoczne tylko w operacjach o dużej objętości. Najbardziej wydajnym (najszybszym) sposobem wykonania polecenia jest to, że rozmiar bloku polecenia odpowiada rozmiarowi dostępu do urządzenia, w przeciwnym razie marnuje się czas.
Jeśli jesteś zainteresowany, możesz spróbować utworzyć plik z milionem fragmentów 1-blokowych i plik z milionem fragmentów 1-blokowych i zobaczyć różnicę:
[user@host tmp]$ time dd if=/dev/zero of=/tmp/test1 bs=1 count=1000000
1000000+0 records in
1000000+0 records out
1000000 bytes (1.0 MB) copied, 2.44439 s, 409 kB/s
real 0m2.447s
user 0m0.177s
sys 0m2.269s
[user@host tmp]$ time dd if=/dev/zero of=/tmp/test2 bs=1000000 count=1
1+0 records in
1+0 records out
1000000 bytes (1.0 MB) copied, 0.00155357 s, 644 MB/s
real 0m0.003s
user 0m0.001s
sys 0m0.002s
[user@host tmp]$ ls -al test*
-rw-rw---- 1 user grp 1000000 Apr 8 15:51 test1
-rw-rw---- 1 user grp 1000000 Apr 8 15:51 test2
Jak widać, wielkość bloku ma ogromny wpływ na wydajność. Być może jest to pasek boczny PO, ale wydaje mi się, że nadal jest istotny.
TL; DR: Nie wykonuj niepożądanego kodu, który znajdziesz w sieci, lub komuś, komu nie ufasz. Zrujnuje ci dzień.