Je pense à une situation où j'aurais quelque chose qui crée une copie d'un répertoire, modifie quelques fichiers, puis effectue un traitement sur le résultat. Cela se fera assez souvent, peut-être quelques dizaines de fois par jour. (Le cas d'utilisation exact est de tester les soumissions de correctifs; duper le code, le corriger, construire / tester / rapport / etc.)
Ce que je recherche pourrait être fait en créant une nouvelle structure de répertoires et en la remplissant de liens durs à partir de l'origonal. Cependant, cela ne fonctionne que si tous les outils que vous utilisez suppriment et recréent des fichiers plutôt que de les modifier en place.
Existe-t-il un moyen de demander au système de fichiers de copier-écrire pour un fichier?
Remarque: je sais que de nombreux FS utilisent COW au niveau du bloc (toutes les mises à jour sont effectuées via des écritures dans de nouveaux blocs), mais ce n'est pas ce que je veux.
cp
et ln
fait presque exactement la même chose. COW au niveau du bloc est une astuce pour minimiser l'intervalle pendant lequel les métadonnées FS sont incorrectes: en.wikipedia.org/wiki/ZFS#Copy-on-write_transactional_model