En resumen:
--dig-holes
hace que un archivo sea disperso sin modificar su contenido (como lo ve un programa que lo lee).--punch-hole
crea un agujero en un archivo, posiblemente modificando los datos existentes.
La diferencia es que --dig-holes
analiza el archivo en busca de áreas que se pueden hacer dispersas (usando --offset
y --length
, si se proporciona, para indicar el rango en el archivo a analizar), mientras que --punch-holes
usa --offset
y --length
para realmente poner a cero una parte de un archivo para crear un agujero.
Tenga en cuenta también el plural "cavar agujeros" frente al singular "perforar agujero".
Del manual, con respecto a --dig-holes
:
Puedes pensar en esta opción como si hicieras un cp --sparse
y luego cambiar el nombre del archivo de destino al original, sin necesidad de espacio adicional en el disco.
--dig-holes
no cambia el contenido del archivo, como se determina cuando se lee el archivo:solo identifica series de ceros que se pueden reemplazar con agujeros.
--punch-hole
usa el --offset
y --length
argumentos para perforar un agujero en un archivo, independientemente de lo que contenga el archivo en ese desplazamiento:funciona incluso si el archivo contiene ceros allí, pero el contenido del archivo cambia como resultado. Teniendo en cuenta su archivo de ejemplo, ejecutando fallocate --punch-hole --offset 2 --length 10
reemplazaría diez a
caracteres con ceros, comenzando después del segundo.