В файловых системах в стиле Unix мы можем создавать жесткие ссылки или символические (также называемые программными) ссылками на файлы. Что это такое, как их создать и как их различать?

Inodes

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

Жесткие ссылки

Жесткая ссылка на файл - это просто еще одна ссылка на индексный дескриптор этого файла. Команда «ln» позволяет нам создать жесткую ссылку на файл как таковой:

Мягкие или символические ссылки

С другой стороны, символическая ссылка - это ссылка на другую ссылку в файловой системе. Мы можем создать символическую ссылку, добавив параметр «-s» к нашей команде «ln» как таковой:

Насколько они разные?

Отлично, теперь мы знаем, как создавать жесткие и символические ссылки, но в чем разница между ними? Что ж, допустим, у вас есть файл с именем «my_file». Если вы создадите жесткую ссылку под названием «my_hard_link», она будет указывать на тот же индексный дескриптор, что и my_file. Думайте об этом как о своего рода копии данных my_file. Если вы создаете символическую ссылку на my_file под названием «my_symbolic_link», тогда my_symbolic_link указывает на my_file filename, а не на его индексный дескриптор.

Это означает, что если вы измените my_file, это никак не повлияет на my_hard_link, поскольку он связан с индексным дескриптором, но вы больше не сможете использовать my_symbolic_link, если удалите my_file.

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

Как жесткие, так и символьные ссылки полезны, но имеют разные цели, и важно их хорошо знать, чтобы избежать несчастных случаев при управлении файлами.