Как создать жесткие ссылки Linux?

How Create Hard Links Linux



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

Узнайте, как создавать жесткие ссылки в Linux.







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

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



Если один файл жесткой ссылки удален, он удаляет ссылку из нижележащего индексного дескриптора.



Команда ls может распечатать индексный дескриптор целевого файла / каталога.





$ls <file_or_dir>

Создание жестких ссылок

Создать жесткую ссылку довольно просто. Для создания ссылок ln - это специальный инструмент, доступный почти во всех дистрибутивах Linux.



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

$пер -v <источник> <ссылка>


Проверьте результат.

$ls <цель>


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

Мягкие ссылки

Мягкие ссылки обычно называют символическими ссылками. Мягкая компоновка может быть кросс-файловой системой. По определению, это не стандартный файл, а скорее файл, указывающий на существующий файл. Здесь файл программной ссылки будет иметь другое значение inode, но он указывает на исходный файл.

Как и при создании жестких ссылок, мы будем использовать инструмент ln. Чтобы объявить о создании программной ссылки, добавьте флаг -s.

$пер -против <источник> <место назначения>


Проверьте результат.

$ls <цель>

Если ссылка уже существует, вы можете обновить ее с помощью флага -f, который заставляет ln обновлять ссылку без какого-либо подтверждения. В качестве альтернативы вы можете использовать флаг -i для интерактивного создания ссылок.

$пер -sf <источник> <место назначения>


Не забудьте проверить результат.

$ls <цель>

Поиск ссылок

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

Для этого нам понадобится значение inode исходного файла. Используйте следующую команду, чтобы узнать номер inode.

$ls <целевой_файл>


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

$найти.-inum <inode_value>

Удаление ссылок

Если вы хотите отключить жесткую ссылку, это можно сделать, удалив связанный файл.

$rm <ссылка>

Последние мысли

Связывание - это мощный инструмент, который можно использовать во многих ситуациях. Хотя он имеет свои ограничения, он может предложить отличные преимущества для множества сценариев.

Хотите узнать больше о команде ln? Узнайте, как использовать команду ln.

Удачных вычислений!