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

Давайте рассмотрим создание жесткой и символической ссылки. Как видно выше, в настоящее время у нас есть каталог, содержащий несколько файлов и подкаталогов. Теперь мы собираемся создать жесткую ссылку «testlink» на файл «testfile1», мы делаем это, выполнив команду ссылки «ln», как показано ниже: «ln testfile1 testlink».

Если мы сейчас откроем жесткую ссылку, она увидит данные в файле. Когда создается символическая ссылка, этот дублированный файл содержит то же содержимое, что и исходный файл. Обратите внимание, что любые изменения, внесенные в файл символической ссылки, не влияют на исходный файл; однако любые изменения, внесенные в исходный файл, повлияют на файл символической ссылки. Мы создаем эту символическую ссылку, запустив команду «ln» с параметром «-s» и указав жесткую ссылку.

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