Символические связи
Символические связи, это другой тип связей, отличающийся от
жестких связей. Символические связи позволяют давать новые имена
файлам, но при этом не ссылаются на индекс файла.
Команда ln -s создаст символическую ссылку на указанный
файл. Например, если мы воспользуемся командой
# ln -s foo bar
мы создадим символьную ссылку bar, указывающую на файл foo.
Если теперь используем команду ls -i, то увидим, что два файла
имеют различные индексы.
# ls -i foo bar
22195 bar 22192 foo
#
Однако, используя ls -l, мы видим, что файл bar имеет
символический указатель на foo.
# ls -l foo bar
lrwxrwxrwx 1 root root 3 Aug 5 16:51 bar -> foo
-rw-r--r-- 1 root root 12 Aug 5 16:50 foo
#
При символической ссылке не используются биты прав доступа
(они всегда отображаются, как rwxrwxrwx). Вместо этого, права
доступа к файлу, полученному символической ссылкой, определяются
правами доступа к файлу, на который он ссылается (в нашем
примере определяется правами файла foo).
Функционально, жесткие ссылки и символические ссылки похожи,
но есть некоторые различия. Например, вы можете создать
символическую ссылку на файл, который не существует; так
нельзя сделать применительно к жесткой ссылке. Символические
ссылки обрабатываются ядром иным образом, чем жесткие. Это скорее
техническое отличие, но иногда важное. Символические ссылки
полезны, поскольку они позволяют идентифицировать файл, на
который они указывают; для жестких ссылок нет простого способа
определить, какие файлы привязаны к одному и тому же индексу.
Ссылки используются во многих местах системы Linux.
Символические ссылки особенно важны для образов разделяемых
библиотек в /lib. Смотри дополнительную информацию в Разделе
4.7.2.