To use an analogy from mail delivery, a symbolic link is something like a forwarding address... when something tries to open a symbolic link, it opens the "file" (not literally a file, though) stored there, and sees that it should instead look at a file with a different name, so it opens the other file instead.
A hard link is more like having two addresses for the same place. (Of course this isn't really possible in the physical world). When something tries to read either file name (address), they get the same physical file (location).
So a hard link is not a copy, because the file is only stored once (but with multiple names). But it behaves very much like a copy, because you can access the same information from two file names.
+1 for a very nice analogy, which would have simplified things for me when I was trying to get my head around this. – John Gardeniers – 2011-06-20T04:17:53.260
1+1, but two minor details: 1) It is possible to have multiple addresses for the same place in the real world, just not common. 2) Perhaps the most important difference between a hard link and a copy is that, if you have
/foo
and/bar
, changing/foo
will also change/bar
if they're hardlinks (because they're two names for the same file), but not if they're copies (because they're two completely independent files). – Dave Sherohman – 2011-06-20T10:09:24.797