As you can see, hard links work on the inode level to point to a particular
file. On Linux systems, hard links have several limitations. For one, you can
only make hard links to files, not directories. That's right; even though
. and .. are system-created hard links to
directories, you (not even as the "root" user) aren't allowed to create any of
your own.
The second limitation of hard links is that they can't span
filesystems. This means that you can't create a link from
/usr/bin/bash to /bin/bash if your / and
/usr directories exist on separate filesystems.