I'm not sure what you're trying to do, or what you're actually seeing, but:
# Here's an example file:
$ cat a
$ ls -l a
-rw-r--r-- 1 paulsm users 27 Mar 11 19:39 a
# Let's create a hard link:
$ ln a b
# Finally, let's check the results:
$ ls -l a b
-rw-r--r-- 2 paulsm users 27 Mar 11 19:39 a
-rw-r--r-- 2 paulsm users 27 Mar 11 19:39 b
$ cat b
So what does this mean?
All you're doing when you create a file is:
a) assign some properties (like a meaningful name and a directory location) to a set of "inodes".
All you're doing when you create a hard link is:
b) assign a NEW "name" to the SAME set of "inodes"
Neither name is the "real" name. You can delete one link (for example, "a") or the other link ("b"); the file itself remains - untouched - until you remove the last link. All names are "equal" to the operating system.
Interestingly, the OS-level API for "delete a file" is "unlink()".
'Hope that helps .. PSM