Linux создает файл нужного размера

Обновлено: 21.11.2024

Создание файлов определенного размера может быть полезно для целей тестирования. В Linux есть несколько различных команд, которые могут создавать файлы определенных размеров. Ознакомьтесь с приведенными ниже командами и примерами, чтобы узнать, как это сделать.

Создать файл определенного размера с усечением

Команда truncate может быть идеальным инструментом для этой работы, поскольку единственная цель этой команды — уменьшить или увеличить размер файла до определенного размера. Вы можете использовать это для создания новых файлов или изменения размера существующих файлов.

Будьте осторожны, так как вы потеряете данные, если уменьшите размер существующего файла.

Пример 1. Создайте файл размером 10 МБ с помощью команды truncate.

Пример 2. Создайте файл размером 2 ГБ с помощью команды truncate.

Пример 3. Команда truncate работает очень быстро, даже при создании огромных файлов. Вам просто нужно место на жестком диске для их размещения. Создайте файл размером 1 ТБ с помощью команды truncate.

Создать файл определенного размера с помощью dd

Команда dd — отличный инструмент для создания необработанных копий данных. Мы также можем использовать его для создания файлов определенного размера, указав случайный ввод с помощью /dev/urandom и размер файла по нашему выбору.

Пример 1. Создайте файл размером 10 МБ, заполненный случайными данными, с помощью команды dd.

Пример 2. Создайте файл размером 2 ГБ, заполненный нулями, с помощью команды dd с параметром /dev/zero .

Создать файл определенного размера с заголовком

Хотя заголовок обычно используется для чтения начала файлов, параметр -c можно использовать для чтения определенного объема данных из файла. В сочетании с такими файлами, как /dev/urandom , мы можем эффективно создать файл любого размера, который выберем.

Пример 1. Создайте файл размером 10 МБ, заполненный случайными данными, с помощью команды head.

Пример 2. Создайте файл размером 2 ГБ, заполненный нулями, с помощью команды head с параметром /dev/zero .

Создать файл определенного размера с да

Было бы трудно получить точный размер файла с помощью команды yes, но ее можно использовать для быстрого увеличения размера файла.

Пример 1. Создайте новый файл с помощью команды yes. Через несколько секунд обязательно нажмите Ctrl+C и проверьте размер вашего файла. Скорее всего, это уже будет несколько гигабайт.

Пример 2. Если вы видите размер файла и хотите, чтобы он был больше, просто продолжайте добавлять данные в файл, используя yes и оператор >>.

Пример 3. С помощью команды yes мы можем заполнить наш документ любыми повторяющимися данными, которые захотим. Например, давайте спамим файл с фразой «Я люблю Linux!»

Всего через несколько секунд наш файл содержит 44 471 115 строк, в которых говорится: «Я люблю Linux!» и имеет размер 594 МБ.

Если наш контент помог вам, угостите нас кофе. Мы ценим вашу поддержку!

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

Перейдите по следующему URL-адресу, если хотите узнать о нескольких способах создания файла в Linux.

Поскольку мы уже знаем несколько команд для этого, я включил в эту статью все возможные варианты.

Вы можете проверить все команды, доступные в этой статье, и выбрать наиболее подходящую для вас.

Я собираюсь создать файл размером 10 МБ, используя все команды, чтобы проверить это.

Это можно сделать с помощью следующих 6 методов.

  • fallocate: fallocate используется для предварительного выделения или освобождения места для файла.
  • truncate: усечение используется для уменьшения или увеличения размера файла до указанного размера.
  • dd: копирование файла, преобразование и форматирование в соответствии с операндами.
  • head: заголовок используется для печати первой части файлов.
  • xfs_mkfile: команда xfs_mkfile позволяет нам создать файл определенного размера в Linux.
  • perl: Perl – это язык программирования, специально разработанный для редактирования текста.

Как создать файл определенного размера в Linux с помощью команды fallocate?

fallocate используется для управления дисковым пространством, выделенным для файла, либо для его освобождения, либо для предварительного выделения. Для файловых систем, которые поддерживают системный вызов fallocate, предварительное выделение выполняется быстро путем выделения блоков и пометки их как неинициализированных, что не требует операций ввода-вывода для блоков данных. Это гораздо быстрее, чем создавать файл, заполняя его нулями.

Используйте команду ls, чтобы проверить заданный размер файла.

Как создать файл определенного размера в Linux с помощью команды truncate?

truncate используется для уменьшения или увеличения размера файла до указанного размера.

Используйте команду ls, чтобы проверить заданный размер файла.

Как создать файл определенного размера в Linux с помощью команды dd?

Команда dd означает дубликат данных. Он используется для копирования и преобразования данных (по умолчанию из стандартного ввода в стандартный вывод).

Кроме того, команда dd позволяет нам создать загрузочный USB-диск в Linux.

Используйте команду ls, чтобы проверить заданный размер файла.

Как создать файл определенного размера в Linux с помощью команды head?

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

Используйте команду ls, чтобы проверить заданный размер файла.

Как создать файл определенного размера в Linux с помощью команды xfs_mkfile?

xfs_mkfile создает один или несколько файлов. По умолчанию файл дополняется нулями. Размер по умолчанию указан в байтах, но его можно пометить как килобайты, блоки, мегабайты или гигабайты с суффиксами k, b, m или g соответственно.

Используйте команду ls, чтобы проверить заданный размер файла.

Как создать файл определенного размера в Linux с помощью команды perl?

Perl расшифровывается как «Практический язык извлечения и составления отчетов». Perl — это язык программирования, специально разработанный для редактирования текста. В настоящее время он широко используется для различных целей, включая системное администрирование Linux, сетевое программирование, веб-разработку и т. д.

Как создать файл (например, с помощью сенсорной команды или другим подобным способом), но определенного размера (например, 14 МБ)?

Вариант использования — тестирование FTP с файлами разного размера. Если мы сможем создать файл определенного размера, будет полезно проверить FTP-передачу и т. д.

7 ответов 7

От человека усекать :

Примечание. Усечение может быть недоступно в вашей системе, например. в Mac OS X он не установлен по умолчанию (но вы можете легко установить его, например, используя macports). В этих случаях вам может понадобиться вместо этого использовать dd или head.

Очень красиво. Прикосновение не требуется, вы можете просто запустить truncate -s 14M имя файла, это создаст имя файла напрямую.

Кажется, это создает разреженный файл, в то время как приведенный ниже ответ (в котором используется "dd") этого не делает. Не знаю, важна ли для вас эта разница, но я решил указать на нее

РЕДАКТИРОВАТЬ: Самый простой способ, вероятно, - это усечение ответа Ашутош Вишва Бандху, но, как указал @offby1, это создает разреженные файлы, которые могут быть не тем, что вам нужно. Приведенные ниже решения создают обычные полные файлы.

Следующие команды создают файл размером 14 МБ с именем foo :

fallocate (спасибо @Breakthrough, который предложил это в комментариях и проголосовал за ответ Ахмеда Масуда ниже, в котором это также упоминается.)

Эта команда особенно впечатляет, поскольку она работает так же быстро, как усечение (мгновенно) независимо от желаемого размера файла (в отличие от других решений, которые будут медленными для больших файлов), и при этом создает обычные файлы, а не разреженные:

Создать файл со случайными данными

Создать файл, заполненный символами \0:

Создайте файл, содержащий первые 14 МБ данных другого файла:

Создайте файл, содержащий последние 14 МБ данных другого файла:

Во всех приведенных выше примерах размер файла будет 14*1000*1000, если вы хотите 14*1024*1024, замените MB на M. Например:

fallocate работает только с байтами, поэтому вам нужно будет сделать (14*1024*1024=14680064)

@Michael Я проверил, чтобы убедиться, что ни одна из моих команд не создает разреженные файлы. Команда dd на вики-странице совершенно другая и не использует /dev/zero. Насчет того, М или МБ логичнее, обсуждайте с разработчиками. На справочных страницах head, tail и dd четко указано, что «MB = 1000 * 1000, M = 1024 * 1024». Это может отличаться на других *nix.

ВНИМАНИЕ! dd автоматически перезапишет все, на что у вас есть права записи, если вы укажете это добровольно или случайно. Убедитесь, что вы понимаете dd , например. с чтением dd --help , и вы не испортите свои командные строки dd, иначе вы можете легко вызвать необратимую потерю данных - даже полную.

Для начала, if= — это входной файл, а of= — это выходной файл. Всегда дважды проверяйте, правильно ли вы все сделали, прежде чем запускать команду. :)

потому что 14 МБ * 1024 = 14 336 КБ, или:

И вы получите 14-мегабайтный файл output.dat, заполненный нулями :D

Это должен быть самый быстрый способ сделать это:

В противном случае просто напишите быструю и грязную программу на C или Perl, которая ищет точную позицию и записывает один байт. Это НАМНОГО быстрее, чем фактический сброс данных в блоки.

Если вы хотите избежать разреженных файлов, то в Linux (и, возможно, в других системах) вы можете использовать fallocate -l из util-linux .

Если это недоступно, и у вас есть система, совместимая с POSIX, вы можете написать быструю и грязную программу, используя библиотечный вызов posix_fallocate(). posix_fallocate гарантирует выделение указанного диапазона, поэтому вы не получите полный диск при последующем использовании диапазона в случае успешного возврата

Узнайте, как легко создавать пустые файлы определенного размера в Linux, используя только терминал.

Иногда, когда вы работаете с приложениями, которым нужны огромные файлы (из тех, которых у вас нет в тот момент, когда вы работаете), гораздо проще создать их динамически, чем загружать или переносить с переносного жесткого диска. . В среде Linux это довольно легко сделать, и есть несколько способов сделать это. В этой статье мы объясним вам, как это сделать четырьмя разными способами.

Файлы, созданные с помощью инструкций fallocate и truncate, не подходят для работы с текстовыми редакторами, поэтому они просто предназначены для двоичных файлов, занимающих X места на вашем диске. Команды head и dd будут использовать накладные расходы ввода-вывода.

Сказав это, давайте начнем!

А. Использование фальлокейта

Первый способ создать файл фиксированного размера — использовать команду fallocate. Fallocate используется для управления дисковым пространством, выделенным для файла, либо для его освобождения, либо для предварительного выделения. Для файловых систем, которые поддерживают системный вызов fallocate, предварительное выделение выполняется быстро путем выделения блоков и пометки их как неинициализированных, что не требует операций ввода-вывода для блоков данных. Команда получает в байтах размер файла, который должен быть сгенерирован, например, чтобы сгенерировать файл размером 10 МБ, должна помочь следующая команда:

Вы также можете использовать короткий синтаксис для записи в мегабайтах, например, следующая команда создаст файл размером 10 МБ:

Этот параметр не использует накладные расходы на ввод/вывод, пространство будет выделено немедленно.

Б. Использование усечения

Еще один способ создания файлов — это команда truncate. Команда truncate позволяет уменьшить или увеличить размер файла до определенного размера, она получает в качестве аргумента путь к файлу, который создается, если он не существует. Если ФАЙЛ больше указанного размера, дополнительные данные теряются. Если короче, то он расширяется, а расширенная часть (отверстие) читается как нулевые байты.

Следующая команда создаст файл размером 10 МБ:

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

С. Использование дд

dd — это утилита командной строки для Unix и Unix-подобных операционных систем, основной целью которой является преобразование и копирование файлов. С помощью следующей команды вы сможете создать файл произвольного размера (заменив 10 МБ на размер файла, который вы хотите создать):

Команда создаст следующий вывод:

И файл должен иметь нужный размер.

Д. Использование головы

Команда head — это утилита командной строки для вывода первой части файлов, переданных ей через стандартный ввод. Он записывает результаты в стандартный вывод.

Читайте также: