У меня есть скрипт, который записывает в несколько файлов, но мне нужны их определенного размера. Поэтому мне интересно, есть ли способ добавить определенное количество нулевых байтов в файл с помощью стандартных инструментов командной строки (например, путем копирования из /dev/zero
)?
26
oflag=append
тебя работает?dd
команду.fallocate
это еще один способ вставить дыры в файл. superuser.com/a/1172904/111432Ответы:
truncate
намного быстрее чемdd
. Чтобы увеличить файл с 10 байтами, используйте:источник
Вы также можете попробовать это
Это будет читать из / dev / zero и добавлять к вашему файлу NUMBER байтов.
источник
Ниже приведен пример добавления 10 МБ к файлу с использованием только dd.
источник
мое первое предположение будет:
По сути, эта команда указывает dd «идти» в конец файла и добавлять несколько байтов, ранее прочитанных из / dev / zero.
С Уважением,
источник
или
и вычислить размер легче:
источник
Если вы дополняете свой файл нулевыми байтами, я предполагаю, что вы манипулируете файлом в a
char *
в C. Если это так, то вам может не потребоваться заполнять файл нулевыми байтами, добавляя только нулевой байт в конце файла, а затем заполнить его случайными байтами может быть достаточно. В этом случае приведенная ниже C-программа будет очень эффективной (будет использоваться только для файлов, размер которых меньше 2-го параметра, в противном случае данные будут перезаписаны). Он может даже делать то, что вы хотите (заполнение нулевыми байтами), посколькуlseek
определение функции гласит:В этом случае 1-й вызов
lseek
иwrite
может быть удален. Но тесты должны быть сделаны на вашей системе 1-го ...источник