Читайте также:
|
|
При организации файловой системы в виде дерева каталогов требуется некоторый способ указания файла. Для этого обычно используются два различных метода. В первом случае каждому файлу дается абсолютное имя пути, состоящее из имен всех каталогов от корневого до того, в котором содержится файл, и имени самого файла. Например, путь /usr/ast/mailbox означает, что корневой каталог содержит подкаталог usr, который, в свою очередь, содержит подкаталог ast, где находится файл mailbox. Абсолютные имена путей всегда начинаются от корневого каталога и являются уникальными. В системе UNIX компоненты пути разделяются косой чертой /. В Windows в качестве разделителя используется обратная косая черта \. В системе MULTICS использовался символ >. Таким образом, одно и то же имя пути в этих трех операционных системах будет выглядеть следующим образом:
Windows \usr\ast\mailbox
UNIX /usr/ast/mailbox
MULTICS >usr>ast>mailbox
Если первой буквой имени пути был разделитель, это означало, независимо от используемого в качестве разделителя символа, что путь абсолютный.
Применяется и относительное имя пути. Оно используется вместе с концепцией рабочего каталога (также называемого текущим каталогом). Пользователь может назначить один из каталогов текущим рабочим каталогом. В этом случае все имена путей, не начинающиеся с символа разделителя, считаются относительными и отсчитываются относительно текущего каталога. Например, если текущим каталогом является /usr/ast, тогда к файлу с абсолютным путем /usr/ast/mailbox можно обратиться просто как к mailbox. Другими словами, команда UNIX
ср /usr/ast/mailbox /usr/ast/mailbox.bak
и команда
ср mailbox mailbox.bak
выполнят одно и то же действие, если рабочим каталогом является /usr/ast. Относительная форма часто оказывается более удобной, но она выполняет то же самое, что и абсолютная.
Большинство операционных систем, поддерживающих иерархические каталоги, имеют специальные элементы в каждом каталоге. Это «.» и «..», означающие текущий каталог и родительский каталог. Чтобы продемонстрировать, как это работает, обратимся к дереву каталогов системы UNIX, показанному на рисунке выше. Для некоторого процесса каталoг /usr/ast является рабочим. Чтобы переместиться вверх по дереву, он может использовать обозначение «..». Например, он может копировать файл /usr'/lib/dictionary в свой собственный каталог при помощи команды
ср../lib/dictionary.
Две точки являются инструкцией системе подняться вверх (в каталог usr). После этого нужно открыть каталог lib и найти в нем файл dictionary.
Одиночная точка означает текущий каталог. Когда команда ср в качестве второго аргумента получает точку, она интерпретирует ее как текущий каталог и копирует все файлы туда. Конечно, ту же команду можно было задать и так:
ср /usr/lib/dictionary.
Здесь использование точки позволяет сэкономить время, затрачиваемое пользователем на набор слова dictionary второй раз. Тем не менее команда
ср /usr/lib/dictionary dictionary
также прекрасно работает и делает то же самое, что и команда
ср /usr/lib/dictionary /usr/ast/dictionary
Все эти команды выполняют одни и те же действия.
Дата добавления: 2015-12-08; просмотров: 76 | Нарушение авторских прав