Каталог - это особый тип файла, предназначенный для хранения информации, которая необходима для доступа к файлам или другим каталогам. Каталоги обычно занимают меньше памяти, чем файлы других типов. Они обеспечивают гибкость и глубину вложенности структуры файловой системы. Каталоги позволяют объединять файлы и другие каталоги в группы, организовывая файловую систему по иерархическому принципу. В отличие от файлов других типов, для работы с каталогами предназначен специальный набор команд.
Каталог состоит из записей. В каждой записи хранится имя файла или подкаталога и ссылочный номер узла в индексе (номер i-node). Для повышения быстродействия и уменьшения занимаемого дискового пространства данные файла хранятся в разных областях памяти компьютера. Запись i-node содержит адреса, позволяющие найти все распределенные блоки данных, связанные с файлом. В записи i-node также хранится такая информация о файле, как время последнего изменения и обращения, режимы доступа, число ссылок, владелец и тип файла. С одной записью i-node могут быть связаны несколько записей каталогов с различными именами, созданные командой ln.
Поскольку в каталогах часто хранится информация, которая не должна быть доступна всем пользователям системы, доступ к каталогу может быть запрещен. Устанавливая права доступа к каталогу, вы можете выбирать, кто может работать с каталогом, и кто может изменять информацию в каталоге. Дополнительная информация приведена в разделе Права доступа к файлам и каталогам.
В этом разделе приведена информация по следующим темам:
Каталоги могут создаваться
операционной системой, системным администратором и пользователями.
Каталоги, созданные системой, обычно содержат файлы специальных типов,
например команды. На вершине иерархии файловой системы находится
созданный системой каталог / (корневой). Каталог
/ обычно содержит следующие стандартные каталоги, также созданные
системой:
Некоторые каталоги, такие как ваш начальный (или домашний) каталог ($HOME), создаются и изменяются системным администратором. В начальный каталог вы попадаете сразу после входа в систему.
Каталоги, создаваемые вами, называются пользовательскими каталогами. Такие каталоги позволяют организовывать и поддерживать порядок в ваших файлах.
Каталоги могут содержать файлы и подкаталоги. Подкаталогом называется каталог внутри другого каталога. Каталог, содержащий подкаталог, называется для него родительским.
Для того чтобы операционная система могла отслеживать и находить каталоги, каждый каталог содержит запись для родительского каталога, в котором он был создан, с именем .. (две точки), и запись для самого себя с именем . (точка). В большей части списков содержимого каталогов эти записи скрыты.
Структуры родительских каталогов, подкаталогов и файлов называются файловыми системами. Структура каталогов часто сравнивается с перевернутым деревом. Корневой каталог, обозначаемый символом косая черта (/), находится в основании и изображается в вершине дерева каталогов. Подкаталоги и файлы изображаются ветвями, отходящими вниз от корневого каталога.
Структура файловой системы может становиться достаточно сложной. Постарайтесь поддерживать структуру файлов и каталогов настолько простой, насколько это возможно. Давайте файлам и каталогам простые осмысленные имена. Это упростит работу с ними.
У каждого каталога, за исключением / (корневого), есть один родительский каталог, а сам он может иметь один или несколько подкаталогов. На рисунке Пример структуры каталогов C - родительской каталог по отношению к E, но в то же время C - подкаталог для / (корневого каталога).
В домашнем, или начальном, каталоге вы оказываетесь сразу после входа в систему. Этот каталог создается системным администратором для каждого пользователя. В домашнем каталоге вы можете хранить свои личные файлы. Обычно вы можете создавать для себя подкаталоги в своем домашнем каталоге. В любой момент вы можете вернуться в свой домашний каталог, введя в командной строке cd и нажав Enter.
В каждый момент вы находитесь в определенном каталоге. Этот каталог называется текущим или рабочим. Имя рабочего каталога можно узнать, введя команду pwd (текущий рабочий каталог). Рабочий каталог можно изменить командой cd.
Имя каждого каталога должно быть уникальным в его родительском каталоге. Это обеспечивает единственность полного пути к каталогу в файловой системе. Имена каталогов должны удовлетворять тем же соглашениям о присвоении имен, что и имена файлов. Эти соглашения описаны в разделе Соглашения о присвоении имен файлам.
К каждому файлу или каталогу можно перейти по единственному пути в структуре каталогов файловой системы. Путь указывает расположение каталога или файла в файловой системе.
Примечание: Длина пути не может превышать 1023 символа.
В файловой системе есть два типа
пути:
Полный путь представляет собой полное имя каталога или файла, начиная с каталога / (корневого). Полный путь не зависит от того, в каком месте файловой системы вы находитесь. Имена полных путей начинаются с косой черты (/), обозначающего корневой каталог. /A/D/9 - это полный путь для 9. Первая косая черта (/) обозначает каталог / (корневой), с которого начинается поиск. Оставшаяся часть пути говорит о том, что нужно перейти в каталог A, найти в нем каталог D, а в нем - 9.
В системе может существовать два файла с именем 9. Это возможно потому, что полное имя файла в файловой системе уникально. Пути /A/D/9 и /C/E/G/9 указывают на два разных файла с именами 9.
В отличие от полных путей, относительные пути указывают на каталог или файл по отношению к текущему рабочему каталогу. Для перехода вверх по иерархии файловой системы в относительных путях применяются подкаталоги с именем две точки (..) . Две точки (..) обозначают родительский каталог. Поскольку относительные пути не начинаются от корневого каталога, их имена не начинаются с косой черты (/). Относительные пути чаще всего применяются для указания файла или каталога в текущем каталоге или в его подкаталогах. Если D - текущий каталог, то относительным путем к 10 будет F/10 (абсолютным - по прежнему /A/D/F/10). Относительным путем для доступа к 3 будет ../../B/3.
На текущий каталог ссылается имя точка (.). Имя точка (.) обычно применяется для указания текущего каталога в параметре программы.
Сокращения позволяют обращаться к
некоторым каталогам по их краткому имени. Список сокращений приведен
ниже.
Сокращение | Значение |
---|---|
. | Текущий каталог. |
.. | Каталог, родительский по отношению к текущему. |
~ | Домашний каталог (кроме Оболочка Bourne). |
$HOME | Домашний каталог (во всех оболочках). |
Глава 4, Перенаправление ввода и вывода
Глава 8, Резервное копирование и носители
Глава 9, Защита системы и файлов