Символические ссылки и жесткие ссылки

Ярлыки между нашими файлами

Сегодня мы увидим, в чем разница между символическими ссылками или программными ссылками и жесткими ссылками, как они используются и как они создаются в UNIX. Но для этого мы должны сначала проверить, что такое иноды.

Что такое инод?

Это структура данных, типичная для файловых систем операционных систем UNIX, каждый индекс идентифицируется уникальным целым числом, в основном как индекс его имени Inode или индексный узел.

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

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

Самый простой способ понять, что такое программная ссылка или символическая ссылка, — это обратиться к ней как к ярлыку как для файла, так и для папки, создав ссылку на файл или папку в определенной точке на диске, которая будет перенаправлять нам к этому.

Следует отметить, что каждая символическая ссылка имеет свой номер инода, что позволяет нам связывать разные файловые системы, позже мы увидим это более четко.

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

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

Следует отметить, что жесткие ссылки не могут быть сделаны на каталоги и тем более за пределы той же файловой системы.

Теперь, когда мы знаем, что такое каждая из ссылок, давайте посмотрим, как они используются и создаются.

Как создать символическую ссылку или программную ссылку?

Чтобы создать символическую ссылку или программную ссылку, мы будем использовать команду ln и рядом с ней параметр -s, затем мы поместим имя нашего файла или каталога и закончим имя, которое мы хотим дать нашей ссылке:

В этом примере мы создали символическую ссылку на файл с именем theWorld и дали имя testSoft по ссылке.

Точно так же, как каталоги имеют d в начале своих разрешений, которые идентифицируют их как каталог, символические ссылки имеют lв начале их разрешений, которые идентифицируют их как таковые, мы можем проверить это, если воспользуемся командой ls рядом с -l следующим образом:

В дополнение к этому мы можем проверить, что ссылка имеет другой индексный дескриптор, это мы можем проверить, если мы используем шаблон -i в нашей команде ls следующим образом: ls -li:

Следует уточнить, что так же, как работают наши ярлыки, если мы удалим исходный файл или каталог, наша ссылка останется, а наши данные — нет.

Как создать жесткую ссылку?

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

В этом примере мы создали жесткую ссылку на файл с именем theWorld и присвоили ей имя testHard.

Также из этого мы можем убедиться, что ссылка имеет индексный дескриптор, это мы можем проверить, если мы используем шаблон -i в нашей команде ls следующим образом, ls -li:

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

Я надеюсь, что эта информация была полезной и позволила лучше понять этот процесс.