Це має бути найшвидший спосіб зробити це:
SEEK=$SIZE-1
dd if=/dev/zero of=outfile bs=1 seek=$SEEK count=1
В іншому випадку просто напишіть швидку і брудну програму C або perl, яка шукає точну позицію і записує один байт. Це ЛОТ швидше, ніж насправді скидання даних на блоки.
Якщо ви хочете , щоб уникнути розріджених файлів , то на Linux (і , можливо , інші системи) , ви можете використовувати fallocate -l <length>
з util-linux
.
Якщо це недоступно, і у вас є система, сумісна з POSIX, ви можете написати швидку та брудну програму, використовуючи виклик бібліотеки posix_fallocate (). posix_fallocate гарантує розподіл вказаного діапазону, тому ви не отримаєте повний диск при подальшому використанні діапазону, якщо він успішно повернеться