Команда fallocate
в Linux — более быстрая альтернатива традиционному методу создания файла и заполнения его нулями. Она просто выделяет место для файла.
Содержание
- Возможности утилиты
- Синтаксис
- Параметры
- Аргументы
- Примеры использования команды fallocate в Linux
- Заключение
Возможности утилиты
Эта малоизвестная команда позволяет создавать файлы определённых размеров.
Одно из практических применений команды fallocate
— быстрое увеличение файла подкачки или быстрое создание файла подкачки заданного размера.
С помощью утилиты можно очень быстро создавать огромные файлы, так как команда лишь выделяет неинициализированные блоки, а не заполняет файл нулями при его создании.
Синтаксис
fallocate [options]
Параметры
- -c, --collapse-range
- Удалить диапазон из файла
- -d, --dig-holes
- Обнаружить нули и заменить дырками
- -i, --insert-range
- Вставить дыру на расстоянии, сдвигая существующие данные
- -l, --length
- Длина для операций с диапазоном, в байтах
- -n, --keep-size
- Сохранять видимый размер файла
- -o, --offset
- Смещение для операций с диапазоном, в байтах
- -p, --punch-hole
- Заменить диапазон дыркой (подразумевается -n)
- -z, --zero-range
- Ноль и обеспечить выделение диапазона
- -x, --posix
- Использование posix_fallocate(3) вместо Fallocate(2)
- -v, --verbose
- Режим подробного вывода
- -h, --help
- Вывести эту справки
- -V, --version
- Отобразить версию
Аргументы
За аргументами могут следовать суффиксы GiB, TiB, PiB, EiB, ZiB и YiB («iB» не является обязательным).
Примеры использования команды fallocate в Linux
Создание файла определённого размера
Создаём файл размером 2 МБ с параметром -l
, определяющей размер файла:
oleg@mobile:~:$ fallocate -l 2MB example_file
oleg@mobile:~:$
Смотрим результат:
oleg@mobile:~:$ ls -l example_file
-rw-r--r-- 1 oleg users 2000000 окт 17 11:56 example_file
oleg@mobile:~:$
Используемые единицы измерения: KB, MB, GB, TB, PB, ZB, YB, KiB или K, MiB или M, GiB или G, TiB или T, PiB или P, ZiB или Z, YiB или Y.
Какова, например, разница между MB и MiB. MB (Mega Byte) равен 1000 * 1000 байт, а размер MiB (Mebibyte) — 1024 * 1024 байта.
Создание большого файла
В качестве примера создаём файл размером 2 GiB:
oleg@mobile:~:$ fallocate -l 2G big_example_file
oleg@mobile:~:$
Отображаем результат:
oleg@mobile:~:$ ls -l big_example_file
-rw-r--r-- 1 oleg users 2147483648 окт 17 12:08 big_example_file
oleg@mobile:~:$
Выделение пространства и сохранение размера файла
Использование команды fallocate
с параметром -n
позволяет выделить пространство с сохранением существующих данных в файле. Для примера выделяем 500 МБ пространства и сохраняем исходные данные файла:
oleg@mobile:~:$ fallocate -n -l 500M big_example_file
oleg@mobile:~:$
Выделение пространства в определённом диапазоне
Для выделения пространства в определённом диапазоне файла указываются параметры -o
и -l
. Например, для выделения 100 МБ пространства, начиная со смещением 1 ГБ от начала файла big_example_file
используется следующая команда:
oleg@mobile:~:$ fallocate -o 1G --length 100M big_example_file
oleg@mobile:~:$
Освобождение пространства из файла
Для освобождения места в файле используется параметр -d
, который создаёт дыру в файле, что освобождает место на диске. Для примера освобождаем пространство по определённому смещению:
oleg@mobile:~:$ fallocate -d -o 100M --length 200M big_example_file
oleg@mobile:~:$
Команда создаёт дыру в файле big_example_file
, начиная со 100 МБ и расширяя её до 200 МБ, освобождая это пространство на диске.
Заключение
В этой небольшой статье приведены основные приёмы использования в Linux команды fallocate
. Работа с этой очень полезной утилитой не представит никаких сложностей и для начинающих пользователей Linux.