Comment by zahlman
11 hours ago
On Linux at least, hard links can't be made to directories, except for the magic . and .. links. So this only allows for a DAG.
Symbolic links can form a graph, and you can process them as needed using readlink etc. to traverse the graph, but they'll still be considered broken if they form a cycle.
I guess technically you could do bind mounts but that's messy
Considered broken by what?
Historically, it made deletion rather difficult with some problematic edge-cases. You could unlink a directory and create an orphan cycle that would never be deleted. Combine that with race conditions on a multi-user systems, plus the indeterminate cost of cycle-detection, and it turns out to be a rather complex problem to solve properly, and banning hard-links is a very simple way to keep the problem tractable, and result in fast, robust and reliable filesystem operations.
GP was talking about symlink cycles though, which can't produce orphans during deletion.
2 replies →