Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > Что такое ссылки


Автор: ZeeLax 25.8.2007, 21:02
Существует два типа ссылок - жесткие и символические.

Жесткая ссылка - это просто ещё одно имя файла, прописанное в индексном дескрипторе файла. Строго говоря, даже имя файла без ссылок, является жесткой ссылкой на файл. Поэтому, ссылку на файл невозможно отличить от имени файла. При удалении файла (точнее ссылки) - на единицу уменьшается количество ссылок на него. Как только ссылок не останется - файл удаляется. Жесткие ссылки могут ссылаться только на файлы "своей" файловой системы. Файловая система, в свою очередь, должна поддерживать создание жестких ссылок.

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

И жесткие и символические ссылки создаются командой ln. Примеры:
  • создание жесткой ссылки
    Код

    ln my_file hardlink_of_my_file 
  • создание символической ссылки
    Код

    ln -s my_file symlink_of_my_file 
Подробную информацию о команде ln, смотрим как обычно
Код

man ln

Автор: MAKCim 26.8.2007, 11:12
Цитата(ZeeLax @  25.8.2007,  21:02 Найти цитируемый пост)
Жесткая ссылка - это просто ещё одно имя файла, прописанное в индексном дескрипторе файла.

не совсем
это каталоговая запись, поле d_ino которой содержит индекс i-node'а файла в таблице i-node'ов
i-node не содержит имени файла

Автор: ZeeLax 26.8.2007, 15:38
Согласен. "Ссылающееся на индексный дескриптор файла" будет правильнее.
P.S. Надо написать FAQ "Что такое индексный дескриптор" ;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)