As a Windows user, and now using Linux alot I’ve had little or no experience with Symbolic Links or Hard Links, but for the last couple of months I’ve been using this extensively.
What I’m mainly using symbolic links for at the moment is keeping the source of my programs in one place(program in illustration), and then storing different version of the software package on different directories underneath that. So modules and images are underneath the specific version of the software.
I currently have a few clients using my programs, some of them are on the same version of the software and others are on other versions. By using Simbolic Links you can just create a directory(virtual host-using PHP) for that client, have their config there, and then make a simbolic link to the modules and image folder of the version the client is on.
In the illustration you can see that two customers is using the source of version 1 of the program and at the moment no-one is yet on version 2.
This also has security advantages, so the client can maybe configure his own configurations in his config, but cannot touch the module or image info.
I must say this is much better than copying the source to each customer directory seperately.
One thing that bothers me though is, this method increases access load on the files on the one location, or is it better, as the PHP engine accesses just that one part of the hard drive the whole time