Было бы неплохо сначала понять, что такое жесткая ссылка.
Обычно в unix-подобной системе имя файла в каталоге указывает на номер inode - по существу номер для файла. «Жесткая ссылка» просто создает другое имя файла с тем же номером inode. Теперь у вас есть разные имена, указывающие на один и тот же нумерованный файл.
Но обратите внимание, что между этими двумя именами нет прямой связи. Связь заключается в том, что у Name1 и Name2 есть номер inode, установленный на 12756, но вы ничего не можете задержать и сказать, что «эта вещь в моей руке - это связь между двумя файлами». Это всего лишь две записи в базе данных, в которых используется идентификационный номер. Вы можете сделать запрос (медленный, поскольку вы просматриваете каждую запись файла в системе) для имен файлов, которые имеют идентификационный номер, но это все.
Таким образом, это не означает ничего, чтобы создать «жесткую связь между двумя файловыми системами» - поскольку две файловые системы имеют разные схемы нумерации (inode 1234 в системе один и 1234 на второй системе, указывают на совершенно разные файлы) и единственное, что вам нужно сохранить, - это имя + inodeNumber, ничего не поделаешь.
Жесткие ссылки и полезные ссылки - оба * указатели *, в некотором смысле. Разница в том, что в мягкой ссылке хранится текстовое представление пути файловой системы к цели, в то время как жесткая ссылка (поскольку это всего лишь запись в каталоге) просто хранит индексный дескриптор цели, поэтому он должен находиться в той же файловой системе, что и каталог, в котором находится ссылка. –
Кулон во мне чувствует себя вынужденным указать, что альтернатива жесткой ссылке является * символической * ссылкой. –
Я бы добавил, что имена файлов в каталоге также являются указателями. Нет понятия «исходный файл» и «жесткая ссылка на этот файл» - это два имени для одного объекта, и ни одно имя не является специальным. и @JesseHallett, я не согласен с идеей, что они альтернативы; Думаю, лучше сказать, что это разные вещи. –