ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
2.10.1 Жесткие связиКоманда ln используется для создания множества связей для одного файла. Например, скажем, что у вас есть файл foo. Используя ls -i можно посмотреть индекс этого файла.Здесь файл foo имеет в файловой системе индекс 22192. Мы можем создать новую связь для этого файла под именем bar:# ls -i foo 22192 foo # С помощью ls -i можно убедиться, что оба файла имеют один и тот же индекс.# ln foo bar Теперь, обращаясь к foo или bar мы фактически обратимся к одном у тому же файлу. Поэтому, если мы меняем что-то в файле foo, эти же самые изменения произойдут в файле bar.# ls -i foo bar 22192 bar 22192 foo # Эти связи известны, как жесткие связи (hard links), поскольку они реализуются прямой ссылкой на индекс файла. Обратите внимание, что в рамках одной файловой системы вы можете организовать только жесткие связи; символические связи (смотрите ниже) не имеют этого ограничения. Когда вы удаляете файл командой rm, на самом деле вы удаляете только одну ссылку на файл. Если вы введете команду Удаляется только связь, имеющая имя foo; bar будет как и прежде существовать. Файл только тогда действительно удаляется, когда на него больше нет связей. Обычно файлы имеют только одну связь, так что команда rm действительно приведет к удалению файла. Однако, если файл имеет много ссылок, применение rm приведет только к удалению одной связи; для того, чтобы удалить файл, вы должны удалить все связи на этот файл.# rm foo Команда ls -l покажет число ссылок на файл (кроме прочей информации) Вторая колонка с цифрой ``2'' показывает число связей файла.# ls -l foo bar -rw-r--r-- 2 root root 12 Aug 5 16:51 bar -rw-r--r-- 2 root root 12 Aug 5 16:50 foo # Самом деле оказывается,
что каталоги представляют из себя справочник типа "имена-индексы". Кроме
прочего, каждый каталог имеет минимум две жесткие ссылки: ``.''
(ссылка, указывающая на самого себя) и ``..'' (ссылка, указывающая
на родительский каталог). В корневом каталоге (/) ссылка ``..''
указывает на сам же каталог /.
|