Los archivos "dispersos" son archivos con espacios vacíos que se supone que están llenos de ceros, pero para los cuales esa suposición es suficiente. Es decir, si lee el archivo, obtendrá ceros, pero como sabemos que son ceros, en realidad no tenemos que escribir ceros por valor de 8 GB. Es suficiente decir, "solo aceptemos que hay un archivo grande aquí sin asignarle espacio".
A medida que sobrescribe el contenido en blanco del archivo, los bloques se asignan en el disco para acomodar lo que está almacenando (ya que no puede suponer que solo son ceros). Pero si agrega al archivo, no está sobrescribiendo nada. Solo estás agregando más al final. Entonces, al agregar, usted asigna bloques en el disco, pero esos bloques no reemplazan a sus bloques "imaginarios" existentes; en cambio, los que creas se agregan al final, después de los imaginarios.
Incluso puede agregar más bloques imaginarios utilizando una dd -skip
operación similar a la que utilizó para crear el archivo. Los bloques "imaginarios" no necesitan estar todos juntos. Y de hecho, a medida que sobrescribe los bloques existentes dentro del archivo, solo se asignarán los bloques que sobrescriba , sin importar dónde aparezcan en el archivo. Es decir, escribir un bloque en la posición 101 no asignará automáticamente y rellenará a cero los bloques del 1 al 99.