[ Страница назад | Страница вперед | Содержание | Индекс | Домой | Юридическая информация | Поиск ]

Руководство пользователя: Операционная система и устройства


Связывание файлов и каталогов

Связями называются записи о соответствии между именами файлов и номерами индексных узлов (i-узлов). Номера индексных узлов - это внутренние абсолютные идентификаторы файлов в AIX. Поскольку записи каталогов состоят из имен файлов и соответствующих номеров i-узлов, их можно считать связями. Фактически уникальным идентификатором файла как физического объекта является i-узел, а не имя этого файла. Любой файл (номер i-узла) может быть связан с несколькими именами одновременно.

Например, предположим, что номер i-узла 798 - это файл с информацией о продажах ярославского отделения компании за июнь. Пусть этому файлу присвоено следующее имя:

Номер i-узла Имя файла
798 memo

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

Номер i-узла Имя файла
798 memo
798 sales/june
798 yaroslavl/june.sales

Теперь при просмотре любого из этих файлов с помощью команды pg или cat будет выдаваться одна и та же информация. Если вы измените содержимое любого из этих файлов, то одновременно будут изменены и остальные два файла, поскольку все они связаны с одним номером i-узла.

В этом разделе приведена информация по следующим темам:

Типы связей

Связи создаются с помощью команды ln. Существует два типа связей:

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

Примечание: Независимо от числа символьных связей, файл принадлежит пользователю, создавшему его. Права доступа к файлу могут изменять только его владелец и пользователь root. Однако изменять связь с файлом (а, значит, и сам файл) могут все пользователи, которым разрешен доступ к этой связи.

Файл или каталог существует до тех пор, пока с ним существует хотя бы одна жесткая связь. Команда ls -l в числе прочей информации для каждого файла и каталога выдает число связей. Для операционной системы все жесткие связи равнозначны, независимо от того, какая из них была создана первой.

Создание связей (команда ln)

Для создания связей между файлами применяется команда ln. Фактически связи - это альтернативные имена одного и того же файла. С помощью связей можно предоставить различным пользователям доступ к одному большому файлу (например, к базе данных или списку рассылки), не создавая дополнительных копий этого файла. Применение связей позволяет не только сэкономить дисковую память, но и избавляет от необходимости синхронизировать один и тот же файл в различных каталогах.

Команда ln создает связь для файла исходный файл с именем целевой файл или с тем же именем в каталоге целевой каталог. По умолчанию команда ln создает жесткие связи. Для создания символьной связи нужно указать в команде ln флаг -s.

При создании связи с новым именем в текущем каталоге в команде ln можно указывать только один файл. При создании связей в новом каталоге можно указывать несколько файлов одновременно.

Параметр целевой файл указывать не обязательно. Если он не будет указан, то команда ln создаст новый файл в текущем каталоге. Новый файл наследует имя, указанное в параметре исходный файл.

Примечание: Без флага -s можно создавать связи только в тех же файловых системах, в которых находятся исходные файлы.

Например, для создания связи с файлом chap1 введите следующую команду:

ln -f chap1 intro

Нажмите Enter.

Для файла chap1 будет создана связь с именем intro. Флаг -f указывает, что если файл intro не существует, его нужно создать. Если файл intro существует, его нужно заменить на связь с файлом chap1. В результате объекты chap1 и intro будут соответствовать одному и тому же файлу. Все изменения в любом из этих файлов будут немедленно отражены в другом.

Для того чтобы создать для файла index одноименную связь в каталоге manual, введите следующую команду:

ln index manual

Нажмите Enter.

В результате для файла index будет создана связь manual/index.

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

ln chap2 jim/chap3 /home/manual

Нажмите Enter.

В результате для файла chap2 будет создана связь /home/manual/chap2, а для файла jim/chap3 - связь /home/manual/chap3.

В команде ln можно указывать шаблоны имен файлов, например:

ln manual/* .

Нажмите Enter.

Для всех файлов из каталога manual будут созданы связи в текущем каталоге, точка (.), с теми же именами, что и в каталоге manual.

Примечание: В предыдущей команде между звездочкой и точкой должен быть указан пробел.

Ниже приведен пример команды, создающей символьную связь:

ln -s /tmp/toc toc

Нажмите Enter.

Эта команда создает символьную связь с именем toc в текущем каталоге. Файл toc будет указывать на файл /tmp/toc. Если файл /tmp/toc существует, то его содержимое можно будет просмотреть с помощью команды cattoc.

Следующая команда равносильна предыдущей, хотя в ней не указан параметр целевой файл:

ln -s /tmp/toc

Нажмите Enter.

Полный синтаксис приведен в описании команды ln в книге AIX 5L Version 5.1 Commands Reference.

Удаление связей

Для удаления связей применяется команда rm. При удалении жесткой связи файл удаляется только в том случае, если это последняя жесткая связь. Одновременно с файлом (i-узлом) удаляются и содержащиеся в нем данные. После удаления i-узла его номер освобождается и может быть присвоен какому-либо вновь созданному файлу.

Полный синтаксис приведен в описании команды rm в книге AIX 5L Version 5.1 Commands Reference.

Связанная информация

Обзор команд

Обзор процессов

Глава 4, Перенаправление ввода и вывода

Глава 11, Оболочки

Файловые системы

Обзор каталогов

Глава 6, Файлы

Файлы DOS

Глава 7, Принтеры,задания и очереди печати

Глава 8, Резервное копирование и носители

Глава 9, Защита системы и файлов


[ Страница назад | Страница вперед | Содержание | Индекс | Домой | Юридическая информация | Поиск ]