To see an example of the use of links in practice, consider the directories in /etc/rc.d on a typical RPM-based system:
drwxr-xr-x 2 root root 1024 Dec 15 23:05 init.d -rwxr-xr-x 1 root root 2722 Apr 15 1999 rc -rwxr-xr-x 1 root root 693 Aug 17 1998 rc.local -rwxr-xr-x 1 root root 9822 Apr 13 1999 rc.sysinit drwxr-xr-x 2 root root 1024 Dec 2 09:41 rc0.d drwxr-xr-x 2 root root 1024 Dec 2 09:41 rc1.d drwxr-xr-x 2 root root 1024 Dec 24 15:15 rc2.d drwxr-xr-x 2 root root 1024 Dec 24 15:15 rc3.d drwxr-xr-x 2 root root 1024 Dec 24 15:16 rc4.d drwxr-xr-x 2 root root 1024 Dec 24 15:16 rc5.d drwxr-xr-x 2 root root 1024 Dec 14 23:37 rc6.d
Inside init.d are scripts to start and stop many of the services on your system, such as httpd, crond, and syslogd. Some of these files are to be executed with a start argument, while others are run with a stop argument, depending on the runlevel of your system. To determine just which files are run and what argument they receive, a scheme of additional directories has been devised. These directories are named rc0.d through rc6.d, one for each runlevel (see Chapter 4 for a complete description of this scheme). Each of the runlevel-specific directories contains several links, each with a name that helps determine the configuration of services on your system. For example, rc3.d contains the following links, among many others:
S30syslog -> ../init.d/syslog S40crond -> ../init.d/crond S85httpd -> ../init.d/httpd
All of these links point back to the scripts ...