En Linux kernel 4.1 FALLOC_FL_INSERT_RANGE
se agregó la opción. Desde la fallocate(2)
página del manual :
Especificar el indicador FALLOC_FL_INSERT_RANGE (disponible desde Linux 4.1) en modo aumenta el espacio de archivo al insertar un agujero dentro del tamaño del archivo sin sobrescribir ningún dato existente. El agujero comenzará en el desplazamiento y continuará para los bytes len. Al insertar el agujero dentro del archivo, el contenido del archivo que comienza en el desplazamiento se desplazará hacia arriba (es decir, a un desplazamiento de archivo más alto) por len bytes. Insertar un agujero dentro de un archivo aumenta el tamaño del archivo en len bytes.
Y recientemente, esta opción de soporte se agregó a util-linux
:
-i, --insert-range
Insert a hole of length bytes from offset, shifting existing
data.
Entonces, cuando se util-linux
lance la versión 2.30 y su distribución de Linux se actualice a esta versión, podremos aumentar el tamaño del archivo en un instante ejecutando:
fallocate -i -l 1G -o 128M /path/to/file
donde 128M
es el tamaño actual del archivo.