In breve:
--dig-holes
rende un file sparse senza modificarne il contenuto (come visto da un programma che lo legge).--punch-hole
crea 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 --sparse
e 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.