Sto pensando a una situazione in cui avrei qualcosa che crea una copia di una directory, modifica alcuni file e quindi esegue un po 'di elaborazione sul risultato. Questo dovrebbe essere fatto abbastanza spesso, forse qualche dozzina di volte al giorno. (Il caso d'uso esatto è testare l'invio di patch; duplica il codice, patch, build / test / report / ecc.)
Quello che sto cercando potrebbe essere fatto creando una nuova struttura di directory e popolandola con hard link dall'originale. Tuttavia, questo funziona solo se tutti gli strumenti utilizzati eliminano e ricreano i file anziché modificarli in posizione.
C'è un modo per fare in modo che il file system faccia copia su scrittura per un file?
Nota: sono consapevole del fatto che molti FS usano la COW a livello di blocco (tutti gli aggiornamenti vengono effettuati tramite scritture su nuovi blocchi) ma questo non è quello che voglio.
cp
e ln
fa quasi esattamente la stessa cosa. COW a livello di blocco è un trucco per ridurre al minimo l'intervallo in cui i metadati FS non sono corretti: en.wikipedia.org/wiki/ZFS#Copy-on-write_transactional_model