[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Символическая связь

Эта иллюстрация показывает файл с символической связью. name2 - это
символическая связь с name1. Заметьте, что символическая связь (name2)
- это запись в директории с inode'ом, отличающимся от inode'а файла,
на который указывает связь. Блоки данных символической связи содержат
имя файла, на который она указывает. Рекомендуется, чтобы это было
абсолютное путевое имя. Команда shell для создания такой связи
выглядит так:
$ ln -s /dir_path/directory1/name1 name2
$ ls -lgo name2
lrwxrwxrwx  1   43 May 26 13:36 name2 -> /dir_path/directory1/name1

Команда ln -s создает файл символической связи с именем, равным
второму аргументу. Первый аргумент - это содержимое блоков данных этой
связи.
Файл типа "l" - это файл символической связи. Права доступа для
символической связи всегда 777, независимо от значения umask. Эти
права не могут быть изменены. chmod(2) идет по символическим связям,
поэтому изменение моды для символической связи изменяет моду файла, на
который она указывает.
Файл символической связи может указывать на другой файл символической
связи и т.д. Может возникнуть цикл, если цепочка символических связей
замыкается на саму себя. В этой ситуации системный вызов возвратит
неуспех после того, как проследит заранее установленное число
символических связей. По умолчанию такое число равно 20. Системный
вызов, обнаруживший слишком большое число последовательных
символических связей, возвращает -1 и устанавливает errno равным
ELOOP.