Подтвердить что ты не робот

Как получить эквивалент /dev/one в Linux

Вы можете использовать

dd if=/dev/zero of=file count=1024 bs=1024 

для нулевого заполнения файла.

Вместо этого я хочу, чтобы один заполнил файл. Как это сделать?

Нет/dev/one file, так как я могу имитировать этот эффект через оболочку bash?

4b9b3361

Ответ 1

Попробуйте следующее:

dd if=<(yes $'\01' | tr -d "\n") of=file count=1024 bs=1024

Замените $'\377' или $'\xFF', если вы хотите, чтобы все биты были единицами.

Ответ 2

tr '\0' '\377' < /dev/zero | dd bs=64K of=/dev/sdx

Это должно быть намного быстрее. Выберите свои блокировки (или добавьте количество), как вам нужно. Запись на SSD-диск до полного с блочным размером 99M дала мне производительность записи 350 М/с.

Ответ 3

Хорошо, вы могли бы сделать это:

dd if=/dev/zero count=1024 bs=1024 |
  tr '\000' '\001' > file

Ответ 4

pv /dev/zero |tr \\000 \\377 >targetfile

... где \377 - это восьмеричное представление 255 (байт со всеми битами, установленными в единицу). Почему tr работает только с восьмеричными числами, я не знаю, но будьте осторожны, чтобы не подсознательно перевести это на 3FF.


Синтаксис использования tr является подверженным ошибкам. Я рекомендую проверить, что он делает желаемый перевод...

cat /dev/zero |tr \\000 \\377 |hexdump -C

Примечание: pv - хорошая утилита, которая заменяет cat и добавляет отображение прогресса/скорости.