En bref :
--dig-holesrend un fichier clairsemé sans modifier son contenu (tel qu'il est vu par un programme qui le lit).--punch-holecré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 --sparsepuis 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.