Как символические ссылки могут использоваться для связи между различными файловыми системами? И почему эти жесткие ссылки нельзя использовать в разных файловых системах?
Почему символические ссылки могут использоваться в разных файловых системах, а жесткие ссылки - нет?
2 ответа
По сути, символическая ссылка сама является файлом, содержащим путь к файлу, на который она ссылается. В атрибутах установлен специальный бит, который заставляет операционную систему обрабатывать символическую ссылку как ссылку - он считывает путь в файле и затем следует по нему к связанному файлу. Все это прозрачно для пользователя.
Поскольку символическая ссылка - это просто файл, который интерпретируется ОС, он может указывать на файл или каталог в любой файловой системе, даже если целевая файловая система сама по себе не поддерживает создание символических ссылок.
Жесткая ссылка, с другой стороны, работает на более низком уровне. Жесткие ссылки и файлы - это, по сути, одно и то же - запись в каталоге файловой системы, состоящая из имени файла и его номера inode. Индод похож на карту, которая описывает, где на жестком диске можно найти различные части файла.
Когда вы создаете жесткую ссылку на существующий файл, вы создаете новую запись в каталоге файловой системы, которая указывает на тот же индекс, что и существующий файл. Из-за этого жесткая ссылка должна находиться в той же файловой системе, что и существующий файл.
Это хорошая статья, которая объясняет различия.
Жесткие ссылки - это запись в таблице размещения файлов, которая указывает на то же блюдо, сектор и блок, что и в исходном файле. После создания жесткой ссылки ... вы можете удалить исходное имя файла, и файл не будет удален. Поскольку это фактическая запись в таблице размещения файлов о физическом расположении файла, его невозможно указать на другой диск.
Символические ссылки - это особый вид файла, который понимается как указатель на другое имя файла. Если целевой файл удален ... символическая ссылка все еще существует, но у нее больше нет цели на другом конце. Имея это в виду, потому что он ссылается только на имя файла ... вы можете указать на что угодно. Даже другие файловые системы.