Знакомство с Linux

         

Символические связи


Символические связи, это другой тип связей, отличающийся от жестких связей. Символические связи позволяют давать новые имена файлам, но при этом не ссылаются на индекс файла.

Команда 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.

3.11



Содержание раздела