Я хотів створити 1 Гб випадковий файл, тому я використав наступну команду.
dd if=/dev/urandom of=output bs=1G count=1
Але замість цього кожного разу, коли я запускаю цю команду, я отримую файл 32 Мб:
<11:58:40>$ dd if=/dev/urandom of=output bs=1G count=1
0+1 records in
0+1 records out
33554431 bytes (34 MB, 32 MiB) copied, 0,288321 s, 116 MB/s
Що не так?
Редагувати:
Завдяки чудовим відповідям у цій темі, я придумав рішення, яке читає 32 шматки величиною 32 Мб, що становить 1 Гб:
dd if=/dev/urandom of=output bs=32M count=32
Було надано інше рішення, яке зчитує 1 Гб прямо в пам'ять, а потім записує на диск. Це рішення займає багато пам’яті, тому не бажане:
dd if=/dev/urandom of=output bs=1G count=1 iflag=fullblock
head
не може виконати це завдання без -c
параметра, якого немає в POSIX . Я не знаю, яка версія cat
може це вирішити. rsync
- це абсолютно нестандартна утиліта. Це ні тут немає; проглядаючи його сторінку, я також не бачу, як він може вирішити цю проблему.
/dev/urandom
це не в POSIX ...
dd
. Я б користувавсяhead
,cat
абоrsync
на його місці майже завжди. І ваше питання, якщо одна з причин, чому альтернативи, як правило, більш безпечні.