Разница между командами truncate и fallocate для создания большого файла в Linux заключается в том, как они работают:
- truncate создаёт разреженный файл. 1 Это участок диска, который содержит похожие данные, например 0 или 1. 1 По сути, в этом участке не хранится данных, просто выделяется место. 1 Реальное дисковое пространство начинает выделяться только тогда, когда в файл начнётся запись данных. 1
- fallocate выделяет всё пространство для файла без записи в него ни одного байта данных. 2 В этом случае получается файл нужного объёма, а не разреженный, как при использовании truncate. 1
Таким образом, fallocate быстрее truncate, так как она только выделяет кластеры хранения для файла, а не заполняет все пустые места нулями. 6