Как создать файлы определенного размера в Linux
Некоторое время назад я настроил локальный файловый сервер с помощью PSiTransfer. Используя свой файловый сервер, я хотел проверить предел загрузки, максимальный размер загрузки и скорость загрузки файлов/папок. Для этой цели мне нужны были файлы разного размера. У меня на жестком диске есть файлы разного размера. Но я хочу, чтобы размер файла был ровно 100 МБ. После небольшого поиска в Интернете я узнал, как создавать файлы определенного размера в Linux и Unix-подобных системах.
Создание файлов определенного размера в Linux
Существует несколько способов создания файлов заданного размера. Я покажу им все на практических примерах.
Все команды, упомянутые в этом руководстве, являются частью GNU coreutils, поэтому вам не нужно их устанавливать. Эти команды предустановлены по умолчанию.
1. Создайте файлы определенного размера с помощью команды truncate.
Чтобы создать файл определенного размера, например 5 МБ, с помощью команды truncate
, выполните:
truncate -s 5M ostechnix.txt
Приведенная выше команда создаст файл ostechnix.txt
размером ровно 5MB
.
Более подробную информацию об этой команде можно найти на страницах руководства truncate
.
man truncate
2. Создайте файлы определенного размера с помощью команды Fallocate.
Другая команда для создания файла определенного размера — fallocate
. Обратите внимание, что вы можете указать размеры файлов только в байтах с помощью команды fallocate
. Чтобы вычислить размер конкретного файла, например 5MB
, вам нужно сделать - 510241024=5242880
. Прозрачный? Хороший!
Теперь давайте создадим файл размером 5 МБ с помощью команды:
fallocate -l 5242880 ostechnix.txt
Как Люк Ван Ромпаипредложил в разделе комментариев, с помощью оболочки bash вы можете выполнять встроенные арифметические действия, поэтому вам не придется вычислять, сколько байтов входит в 5 МБ
заранее.
Итак, мы можем использовать это, как показано ниже:
fallocate -l $((5*1024*1024)) ostechnix.txt
Для получения более подробной информации об этой команде я предлагаю вам просмотреть справочные страницы fallocate
.
man fallocate
3. Создайте файлы определенного размера с помощью команды head.
Мы используем команду head
для вывода первой части файлов, верно? Что ж, мы также можем использовать эту команду для создания файла определенного размера.
Чтобы создать файл размером 5 МБ
с помощью команды head
, выполните:
head -c 5MB /dev/urandom > ostechnix.txt
Приведенная выше команда создаст файл размером 5MB
, заполненный случайными данными. Вы также можете создать файл с 0s
, как показано ниже.
head -c 5MB /dev/zero > ostechnix.txt
Дополнительную информацию о команде head
можно найти на страницах руководства.
man head
4. Создайте файлы определенного размера с помощью команды dd.
Мы уже знали, что можем преобразовать и скопировать файл с помощью команды dd
. Мы также используем команду dd для создания загрузочного диска. Однако мы можем использовать эту команду и для создания файлов определенного размера.
Чтобы создать файл размером 5 МБ, выполните:
dd if=/dev/urandom of=ostechnix.txt bs=5MB count=1
Пример вывода:
1+0 records in
1+0 records out
5000000 bytes (5.0 MB, 4.8 MiB) copied, 0.0402477 s, 124 MB/s
Команда создаст файл ostechnix.txt
размером 5MB
, содержащий некоторые случайные данные.
Чтобы создать файл, заполненный 0s
, вы можете использовать:
dd if=/dev/zero of=ostechnix.txt bs=5MB count=1
Как обычно, подробную информацию об этой команде можно найти на страницах руководства по команде dd
.
man dd
И это все. Теперь вы знаете, как создать файл определенного размера в Linux. Как видно из приведенных выше примеров, создание файлов определенного размера не составляет большого труда. Надеюсь это поможет.
Рекомендуется к прочтению:
- Как узнать размер каталога в Linux
- Учебное пособие по команде mktemp с примерами для начинающих