
В этом введении к жестким ссылкам и символическим ссылкам мы сначала узнаем и определим, что означает каждая из них. Затем мы углубимся в то, каковы различия между ними.
Определение жесткой ссылки:
Жесткая ссылка — это просто дополнительное имя для существующего файла в Linux или других Unix-подобных операционных системах.
Для любого файла может быть создано любое количество жестких ссылок и, следовательно, любое количество имен. Жесткие ссылки также могут быть созданы для других жестких ссылок. Однако они не могут быть созданы для каталогов, не могут пересекать границы файловой системы или охватывать разделы.
Возможно, наиболее полезным применением жестких ссылок является обеспечение легкого доступа к файлам, программам и сценариям (т. е. коротким программам) в каталоге, отличном от исходного файла или исполняемого файла (т. е. готового к запуску файла). вариант программы). Ввод имени жесткой ссылки приведет к тому, что программа или сценарий будут выполняться так же, как и при использовании исходного имени. (http://www.linfo.org/hard_link.html)
Так что же на самом деле означает это определение? Что ж, вы можете создать жесткую ссылку на существующий файл с помощью команды ln имя_файла hardlink. Ниже я привел пример создания жесткой ссылки в действии. В приведенном ниже примере я создал жесткую ссылку, также известную как ярлык для файла с именем file1, с жесткой ссылкой с именем hlink1.
Теперь давайте ls -i. Так что он перечисляет все файлы с inode.
Определение INODE: inode — это структура данных в файловой системе в стиле Unix, которая описывает объект файловой системы, такой как файл или каталог. Каждый индексный дескриптор хранит атрибуты и местоположение (я) дискового блока данных объекта. Атрибуты объекта файловой системы могут включать время последнего изменения, доступа, модификации, а также владельца данных.
Каталоги — это списки имен, присвоенных индексным узлам. Каталог содержит запись для себя, своего родителя и каждого из своих дочерних элементов. (https://en.wikipedia.org/wiki/Inode)
Теперь переходим к «Soft Links»
Мягкие ссылки — это особый тип файла, который указывает на другой файл, подобно ярлыку. В отличие от жесткой ссылки, символическая ссылка не содержит данных в целевом файле. Она просто указывает на другую запись где-то в файловой системе. Это отличие придает символическим ссылкам определенные качества, которых нет у жестких ссылок, например возможность ссылаться на каталоги или файлы на удаленных компьютерах, объединенных в сеть через NFS. Кроме того, когда вы удаляете целевой файл, символические ссылки на этот файл становятся непригодными для использования, тогда как жесткие ссылки сохраняют содержимое файла. (https://kb.iu.edu/d/abbe)
в чем разница между жесткими и мягкими ссылками?
Мягкая ссылка не содержит данных в целевом файле.
Мягкая ссылка указывает на другую запись где-то в файловой системе.
Мягкая ссылка позволяет создавать ссылки на каталоги или файлы на удаленных компьютерах, объединенных в сеть через NFS.
Удаление целевого файла для символической ссылки делает эту ссылку бесполезной.
Жесткая ссылка сохраняет содержимое файла.
Жесткая ссылка не может быть создана для каталогов, и они не могут пересекать границы файловой системы или пересекать разделы.
В жесткой ссылке вы можете использовать любое имя жесткой ссылки, созданное для выполнения программы или скрипта таким же образом, как и исходное имя.
По сути:
«Под файловой системой файлы представлены инодами
Файл в файловой системе — это, по сути, ссылка на индексный дескриптор.
Жесткая ссылка просто создает другой файл со ссылкой на тот же базовый индексный дескриптор.
Когда вы удаляете файл, он удаляет одну ссылку на базовый индекс. Индексный дескриптор удаляется (или может быть удален/перезаписан) только тогда, когда все ссылки на индексный дескриптор удалены.
Символическая ссылка — это ссылка на другое имя в файловой системе.
После создания жесткой ссылки ссылка делается на индексный дескриптор. удаление, переименование или перемещение исходного файла не повлияет на жесткую ссылку, поскольку она связана с базовым индексным узлом. Любые изменения данных индексного дескриптора отражаются во всех файлах, которые ссылаются на этот индексный дескриптор.
Примечание. Жесткие ссылки действительны только в пределах одной и той же файловой системы. Символические ссылки могут охватывать файловые системы, поскольку они являются просто именем другого файла».