No Linux kernel 4.1 FALLOC_FL_INSERT_RANGE
opção foi adicionada. Na fallocate(2)
página do manual :
A especificação do sinalizador FALLOC_FL_INSERT_RANGE (disponível desde o Linux 4.1) no modo aumenta o espaço no arquivo, inserindo um furo no tamanho do arquivo sem substituir os dados existentes. O furo começará no deslocamento e continuará por bytes de len. Ao inserir o furo dentro do arquivo, o conteúdo do arquivo que começa no deslocamento será deslocado para cima (ou seja, para um deslocamento maior do arquivo) por bytes de len. Inserir um furo dentro de um arquivo aumenta o tamanho do arquivo em bytes de len.
E recentemente esse suporte de opção foi adicionado a util-linux
:
-i, --insert-range
Insert a hole of length bytes from offset, shifting existing
data.
Portanto, quando a util-linux
versão 2.30 for lançada e sua distribuição Linux for atualizada para esta versão, poderemos aumentar o tamanho do arquivo rapidamente, executando:
fallocate -i -l 1G -o 128M /path/to/file
onde 128M
é o tamanho do arquivo atual.