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.



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