Почему символические ссылки могут использоваться в разных файловых системах, а жесткие ссылки - нет?

2

Как символические ссылки могут использоваться для связи между различными файловыми системами? И почему это жесткие ссылки не могу использоваться в разных файловых системах?

ddmichael
источник

Ответы:

3

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

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

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

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

Это хорошая статья это объясняет различия.

Dermot Williams
источник
1

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

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

TheCompWiz
источник