In breve:
--dig-holesrende un file sparse senza modificarne il contenuto (come visto da un programma che lo legge).--punch-holecrea un buco in un file, probabilmente modificando i dati esistenti.
La differenza è che --dig-holes analizza il file per le aree che possono essere rese sparse (usando --offset e --length , se fornito, per indicare l'intervallo nel file da analizzare), mentre --punch-holes utilizza --offset e --length effettivamente azzerare una parte di un file per creare un buco.
Nota anche il plurale "scavare buche" rispetto al singolare "punch hole".
Dal manuale, riguardante --dig-holes :
Puoi pensare a questa opzione come fare un
cp --sparsee quindi rinominare il file di destinazione nell'originale, senza la necessità di ulteriore spazio su disco.
--dig-holes non modifica il contenuto del file, come determinato quando il file viene letto:identifica solo sequenze di zero che possono essere sostituite con buchi.
--punch-hole utilizza il --offset e --length argomenti per creare un buco in un file, indipendentemente da ciò che il file contiene a quell'offset:funziona anche se il file contiene numeri diversi da zero, ma il contenuto del file cambia di conseguenza. Considerando il tuo file di esempio, eseguendo fallocate --punch-hole --offset 2 --length 10 sostituirebbe dieci a caratteri con zeri, a partire dal secondo.