В файловых системах в стиле 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.
По сути, символические ссылки лучше жестких ссылок, когда вам нужен доступ ко всем каталогам или файлам на удаленных компьютерах, а жесткие ссылки лучше, когда вы знаете, что собираетесь изменить исходный файл и хотите сохранить старую версию или ее как хорошо. Одно интересное замечание о символических ссылках: они могут быть доступны из других файловых систем, а не из жестких ссылок.
Как жесткие, так и символьные ссылки полезны, но имеют разные цели, и важно их хорошо знать, чтобы избежать несчастных случаев при управлении файлами.