214
Рисунок 7.3 Альтернативное имя для файла
Косвенным файлом (indirect file) или символьной связью (symbolic
link) называется элемент каталога, который ссылается на другой элемент
каталога. Ссылка производится обычно путем указания полного
символьного имени каталога. Так, в приведенном выше примере элемент
каталога /users/petrov/c может вместо адреса дескриптора содержать
символьную строку '/system/tools/c' или ссылаться на
"псевдодескриптор", содержащий эту символьную строку. Такой
косвенный файл показан на рисунке 7.3.б. При обращении к файлу по
имени '/users/petrov/c' ФС в процессе поиска, дойдя до этого
места, продолжит поиск по пути, который указан в косвенной ссылке.
Нетрудно обеспечить и многоуровневые косвенные ссылки. Подобно
косвенным файлам, могут быть и косвенные каталоги. Принципиальное
отличие косвенных файлов от алиасов в том, что имена косвенных файлов
имеют неравные права с основным именем. Только один элемент каталога
(основной) ссылается на физический файл, остальные же – на элемент
каталога. Поэтому удаление физического файла возможно только по
основному имени, удаления же по косвенным именам удаляют только
элементы каталогов. Если файл удален по основному имени, то косвенные
ссылки на него, как правило, остаются в каталогах, и обращения по
косвенным именам приведут к ошибкам. Задача чистки каталогов от
неактуальных косвенных имен может возлагаться либо на пользователей –
владельцев каталогов, либо на администратора системы, в распоряжении
которого должны быть соответствующие утилиты.
Раздельное хранение каталогов и дескрипторов предоставляет, как
мы показали, дополнительные возможности, а также создает почву для
возникновения дополнительных ошибок – "беспризорных" файлов, то есть
файлов, на которые нет ссылок ни в каком каталоге. В распоряжении