En bref :
--dig-holes
rend un fichier clairsemé sans modifier son contenu (tel qu'il est vu par un programme qui le lit).--punch-hole
crée un trou dans un fichier, modifiant éventuellement des données existantes.
La différence est que --dig-holes
analyse le fichier pour les zones qui peuvent être rendues clairsemées (en utilisant --offset
et --length
, si fourni, pour indiquer la plage dans le fichier à analyser), tandis que --punch-holes
utilise --offset
et --length
pour réellement mettre à zéro une partie d'une lime pour créer un trou.
Notez également le pluriel "creuser des trous" par rapport au singulier "perforer".
Du manuel, concernant --dig-holes
:
Vous pouvez considérer cette option comme faisant un
cp --sparse
puis renommer le fichier de destination par l'original, sans avoir besoin d'espace disque supplémentaire.
--dig-holes
ne modifie pas le contenu du fichier, tel que déterminé lors de la lecture du fichier :il identifie simplement les séries de zéros qui peuvent être remplacées par des trous.
--punch-hole
utilise le --offset
et --length
arguments pour percer un trou dans un fichier, quel que soit le contenu du fichier à ce décalage :cela fonctionne même si le fichier contient des non-zéros, mais le contenu du fichier change par conséquent. Considérant votre fichier d'exemple, exécutant fallocate --punch-hole --offset 2 --length 10
remplacerait dix a
caractères avec des zéros, en commençant après le deuxième.