Преобразование имен файлов
После получения полного составного имени механизм файловой системы преобразует его в имя файла на диске; для этого механизм преобразования имен проходит по концептуальной иерархии каталогов. В системе Linux преобразование имен в конечном итоге сводится к поиску индексного узла, обозначающего файл. Преобразование полного составного имени в файловой системе начинается с корня иерархии и предусматривает последовательное прохождение по каталогам. Например, после получения имени типа /а/b/c/d файловая система открывает корневой каталог и ищет в нем подкаталог а. Найдя подкаталог /а, она открывает этот каталог и ищет в нем подкаталог Ь. Аналогичным образом, файловая система ищет в b каталог с, а в с отыскивает файл или подкаталог d. Программное обеспечение на каждом этапе поиска может извлечь один компонент полного составного имени, поскольку символ косой черты всегда разделяет отдельные компоненты. Как будет показано ниже, в системе NFS применяется такой же способ преобразования имен, как и в операционной системе Linux. Хотя для нас пока не имеют значения конкретные сведения о преобразовании имен файлов, отметим следующий важный принцип. Вы хотите достичь своих целей: франшиза zara.
Составное имя преобразуется поэтапно — по одному компоненту за один этап. Преобразование начинается с корня иерархии и предусматривает прохождение по компонентам составного имени. В этом последовательном процессе на каждом этапе извлекается очередной компонент составного имени и отыскивается файл или подкаталог с этим именем.
Символические ссылки
Многие файловые системы допускают применение файлов особого типа, называемых символическими ссылками (ярлыками). Символическая ссылка представляет собой специальный текстовый файл, содержащий имя другого файла. Например, можно создать файл /a/b/с, который содержит символическую ссылку со значением /а/q. При открытии в программе файла /a/b/с система обнаруживает, что он содержит символическую ссылку, и автоматически переключается на файл /a/q.
Основное преимущество использования символических ссылок заключается в их универсальности: поскольку символическая ссылка может содержать произвольную строку, она может указывать на любой файл или каталог. Например, хотя файловая система запрещает создание жестких ссылок на каталог, она позволяет пользователю создавать символические ссылки на каталог. Кроме того, поскольку символическая ссылка может указывать на произвольное составное Шея, она может применяться для краткого обозначения длинных составных имен или для значительного сокращения пути доступа к каталогу, находящемуся в отдаленной части иерархии.
Основной недостаток символических ссылок связан с отсутствием в них единообразия и надежности. Например, пользователь может создать символическую ссылку на файл, а затем удалить этот файл, в результате чего останется оборванная символическая ссылка, которая указывает на несуществующий объект. Фактически может быть даже создана символическая ссылка на несуществующий файл, поскольку система не проверяет правильность символической ссылки при ее создании. Ничто не препятствует также созданию набора символических ссылок, образующих цикл, или двух символических ссылок, указывающих друг на друга. При вызове функции open для открытия файла, указанного с помощью такой ссылки, возникает ошибка периода выполнения.