Пожалуйста, современнее проще и быстрее. В Linux (выберите один)
truncate -s 10G foo
fallocate -l 5G bar
Для необходимо указать , что truncate
в файловой системе, поддерживающей разреженные файлы, создаст разреженный файл, а fallocate
- нет. Разреженный файл - это файл, в котором единицы выделения, составляющие файл, на самом деле не распределяются до использования. Метаданные для файла займут , однако занимают значительное место, но, вероятно, не там, где находится фактический размер файла. Вам следует обратиться к ресурсам о разреженных файлах для получения дополнительной информации, поскольку у этого типа файлов есть свои преимущества и недостатки. Не разреженный файл имеет свои блоки (единицы размещения), выделенные заранее, что означает, что пространство зарезервировано настолько, насколько его видит файловая система. Также fallocate
, ни truncate
не будет устанавливать содержимое файла на указанное значение , как dd
, вместо содержимого файла, выделенного с помощью fallocate
или truncate
, может быть любой мусор значение, которое существовало в выделенных единицах при создании, и такое поведение может быть или не быть желательным. dd
является самым медленным, поскольку фактически записывает значение или порцию данных во весь файловый поток, как указано в его параметрах командной строки.
Это поведение может потенциально отличаться - в зависимости от используемой файловой системы и соответствия этой файловой системы какому-либо стандарту или спецификации. Поэтому рекомендуется проводить надлежащие исследования, чтобы убедиться, что используется соответствующий метод.