Материал предоставлен http://it.rfet.ru

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

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

Пользователь Linux может добавить файлу еще одно имя (создать еще одну жесткую ссылку на файл) при помощи утилиты ln (от англ. ”link” - ”соединять, связывать”). Первый параметр - это имя файла, на который нужно создать ссылку, второй - имя новой ссылки. По умолчанию ссылка будет создана в текущем каталоге:

[ivan@localhost ivan]$ ln examples/text text-hardlink
[ivan@localhost ivan]$ ls -lR
./:
. . .
drwxr-xr-x 3 ivan ivan 4096 Окт 16 04:45 examples
-rw-r--r-- 2 ivan ivan  653 Окт 6 10:31 text-hardlink
./examples:
итого 92
-rw-r--r-- 1 ivan ivan 84718 Окт 6 10:31 -filename-with-
-rw-r--r-- 2 ivan ivan   653 Окт 6 10:31 text

Пример 4.12. Создание жестких ссылок

Иван создал в своем домашнем каталоге жесткую ссылку с именем text-hardlink на файл text, который находится в подкаталоге examples. Выведя подробный список файлов текущего каталога и его подкаталогов (ls -lR), Иван обратил внимание, что у файлов text и text-hardlink совпадают и размер (” 653 “), и время создания. Это его совершенно не удивило, поскольку он знает, что теперь /home/ivan/text-hardlink и /home/ivan/examples/text - это два имени одного и того же файла.

В подробном описании, выведенном командой ls -l, Ивану остались непонятны только два первых поля. Как объяснил Гончаров, первое “слово”, состоящее из знаков -drwx, - это обозначение прав доступа к файлу, о которых речь пойдет в лекции 6. А следующее за ним число - количество жестких ссылок на данный файл или каталог. У text и text-hardlink стоит число ”2” - у этого файла два имени.

Доступ к одному и тому же файлу при помощи нескольких имен может понадобиться в следующих случаях:

  1. Одна и та же программа известна под несколькими именами.
  2. Доступ пользователей к некоторым каталогам в системе может быть ограничен из соображений безопасности. Однако если все же нужно организовать доступ пользователей к файлу, который находится в таком каталоге, можно создать жесткую ссылку на этот файл в другом каталоге.
  3. Современные файловые системы даже на домашних персональных компьютерах могут насчитывать до нескольких десятков тысяч файлов и тысячи каталогов. Обычно у таких файловых систем сложная многоуровневая иерархическая организация - в результате пути ко многим файлам становятся очень длинными. Чтобы организовать более удобный доступ к файлу, который находится очень “глубоко” в иерархии каталогов, также можно использовать жесткую ссылку в более доступном каталоге.
  4. Полное имя некоторых программ может быть весьма длинным (например, i586-alt-linux-gcc-3.3), к таким программам удобнее обращаться при помощи сокращенного имени (жесткой ссылки) - gcc-3.3.
Копирование и перемещение файловИндексные дескрипторы