Create multiple references to the underlying file. Initially it doesn’t take up any extra space. However, any reflink that is modified becomes a distinct file, via CoW.

Create multiple references to the underlying file, taking up no extra data. Modifications to any of hardlinks changes the underlying file.

A pointer to some underlying file.


Comparisons

AspectReflinkHardlinkSymlink
Use caseEfficient data duplication with CoWMultiple names for the same file in the filesystA shortcut to access the underlying file
File updatesA new copy of the file is created, resulting in a diverging brancdThe underlying data referenced by all hardlinks is changedThe underlying file is modified
File deletionThe reflink (‘s copy) is deleted, but other reflinks exist as usual.No effect. Underlying data is deleted only when all hardlinks are deletedThe pointer is left dangling