9.3. Ссылки

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

Жёсткие ссылки - это по сути различные имена одного отдельно взятого файла. Они могут существовать в пределах только одной файловой системы и удаляются только в том случае, когда из системы удаляется настоящее имя. Они полезны в некоторых случаях, однако большинство пользователей находят использование мягких ссылок более гибким и удобным.

Мягкие ссылки (часто называемые символическими ссылками или “симлинками”) могут указывать на файлы, находящиеся за пределами файловой системы. На самом деле это небольшие файлы, содержащие необходимую информацию. Вы можете добавлять и удалять символические ссылки, не затрагивая при этом файлы, на которые они указывают. И поскольку симлинки представляют собой файлы со своей собственной информацией, они могут указывать даже на каталоги. Например, довольно часто /var/tmp является символической ссылкой на каталог /tmp.

Ссылки не имеют собственного набора прав доступа или владельцев, зато эти свойства есть у файлов, на которые они указывают. Вот общий пример:

% ls -l /bin/sh
lrwxrwxrwx   1 root     root     4 Apr  6 12:34 /bin/sh -> bash

Командный процессор sh в Slackware - это на самом деле bash. Удаление ссылок выполняется с помощью rm. Для создания ссылок используется команда ln. Эти команды будут рассмотрены более подробно в Гл. 10.

Однако с символическими ссылками надо соблюдать большую осторожность. В частности на машинах, в которых каждую ночь выполняется резервное копирование данных на магнитную ленту. Был случай, когда были созданы два симлинка на каталоги, ссылающиеся друг на друга. Программа резервировного копирования продолжала добавлять эти два каталога на магнитную ленту до тех пор, пока на ней не закончилось свободное пространство. Обычно набор проверок предотвращает создание символической ссылки в такой ситуации, однако наш случай был особым.