Найти тему

Три способа создать файл любого размера в Linux

Оглавление
Три способа создать файл любого размера в Linux
Три способа создать файл любого размера в Linux

Продолжаю делиться полезностями с подписчиками и читателями канала. В предыдущей заметке был показан фрагмент создания файла размером 5 гигабайт и наблюдение за его размером через утилиту watch. Если не читали этой статьи, то оставлю ссылку ниже.

Надобность в создании файлов-болванок с заданным размером может возникнуть по разным причинам (например, проверить работу скрипта удаления по размеру), потому знать, как это сделать бывает полезным. К тому же, рассказано будет сразу про три таких способа.

Чтобы попробовать описанные в статье способы создания файлов можно, конечно, использовать домашний ПК или ноутбук. Но лучше приобрести виртуальный сервер у лучшего хостинг-провайдера Таймвеб и тестировать его вдоль и поперёк. Если перейдёте по ссылке ниже и оплатите услугу облачного хостинга, то мы оба получим на счёт 300 рублей. Если же закажите услугу выделенного сервера, то на баланс упадёт 2000! Думаю, что от такого предложения не стоит отказываться, потому кликайте по ссылке и после регистрации возвращайтесь к чтению статьи.

Облачная инфраструктура для бизнеса — Timeweb Cloud

1️⃣ Используем утилиту dd

Про эту утилиту на канале когда-то выходила отдельная статья, но тогда dd использовался для записи установочного образа Linux на USB-флэшку. Если интересна статья, то оставлю ссылку ниже.

Возможности dd обширны и позволяют, в том числе, записывать файлы нужного размера. Синтаксис команды для выполнения этой задачи прост:

dd if=/dev/zero of=./<файл> bs=1M count=1000

В результате выполнения этой команды получим файл размером 1 гигабайт. Казалось бы, что может быть проще? Но способ посредством dd является неудобным в плане того, что он является самым медленным из всех, так как записывает блок данных и требует много времени на операции ввода-вывода по мере увеличения размера файла. Условно говоря, запись 1 гигабайта данных не будет казаться долгой, а вот чтобы получить файл размером в несколько десятков гигабайт уже надо будет подождать. Потому давайте рассмотрим еще пару способов.

2️⃣ Используем команду truncate

Это уже что-то новенькое, так как ранее на канале про эту команду ничего не говорилось. При этом использование truncate является одним из самых быстрых способов создать файл нужного размера. Суть работы команды при этом состоит в том, что создается разреженный файл - это участок диска, которые содерит похожие данные, например 0 или 1. По сути, в этом участке не хранится данных, просто выделяется место, тем самым происходит обман дистрибутива. Реальное дисковое пространство начинает выделяться только тогда, когда в файл начнётся запись данных.

Чтобы сгенерировать файл размером гигабайт при помощи truncate откройте терминал и введите туда следующий текст:

truncate -s 1G ./<файл>

3️⃣ Используем fallocate

Утилита fallocate из нашего перечня является с точки зрения скорости записи файла нужного размера самой быстрой. Когда вы её запускаете, то она выделяет нужное дисковое простнаство и фактически ничего в него не записывает. В этом случае вы получите файл нужного объёма, а не разреженный файл, как если бы вы использовали truncate.

Чтобы также сгенерировать файл всё того же размера в один гигабайт необходимо использовать следующую команду:

fallocate -l 1G ./<файл>

🏁 Вместо заключения

На самом деле, это не единственные способы создания файла нужного размера. Преимущество Linux состоит в том, что способов сделать что-то огромное множество. Если вы знаете другие способы сгенерировать файл нужного размера в Linux, то напишите об этом в комментариях.

Подписка на канал позволит вам получить доступ к интересным и полезным материалам по Linux, IT и Opensource. А если вы подпишитесь на уведомления о новых постах в Дзен-ридер, то сможете получать информацию о выходе новых статей раньше, чем об этом будет сообщать Дзен.

Дзен-ридер