So there are more reasons for symlinks than just 'hard links are restricted to linking within the same filesystem', but yes, that too. Symlinks are just so damn convenient for use cases like this. So for example we'll have:įrom a simple 'ls' it's obvious which versions are installed and which are just compatibility shims. On macOS, an application is just a directory. We only retain the most recent patch release of each major.minor version, but drop compatibility symlinks in place for the other versions. A file with multiple links doesn't have an obvious canonical path.Īs an example of all these issues, I manage a bunch of Mac build hosts with multiple Xcode versions installed. If a file has multiple links, finding them all normally requires scanning the entire file system, so deleting a file now becomes harder.
You can't normally hard link directories. I'm sorry symlinks are a thorn in Jeremy's side, but they are useful from a user's perspective.