Además de las respuestas para obtener un relleno físico, también puede dejar la mayor parte del espacio de relleno en el archivo simplemente vacío ("agujeros"), seek
yendo a la nueva posición final del archivo y escribiendo un solo carácter:
dd if=/dev/zero of=largerfile.txt bs=1 count=1 seek=16777215
(que tiene la ventaja de ser mucho más eficiente, específicamente con bs=1
, y no ocupa grandes cantidades de espacio en disco adicional).
Ese método parece funcionar incluso sin agregar ningún carácter, mediante el uso if=/dev/null
y el tamaño final deseado del archivo:
dd if=/dev/null of=largerfile.txt bs=1 count=1 seek=16777216
Una variante eficaz de una solución de relleno físico que utiliza bloques de mayor tamaño es:
padding=262144 bs=32768 nblocks=$((padding/bs)) rest=$((padding%bs))
{
dd if=/dev/zero bs=$bs count=$nblocks
dd if=/dev/zero bs=$rest count=1
} 2>/dev/null >>largerfile.txt
bs=1
endd
está en mi experiencia muy costosa en tiempo de ejecución.