double arrow

Понятие об устройстве файловой системы в UNIX. Полные и относительные имена файлов.


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

§ Нельзя создавать имена большей длины, чем это предусмотрено операционной системой (для Linux - 255 символов).

§ Нельзя использовать символNUL (не путать с указателем NULL !) - он же символ с нулевым кодом, он же признак конца строки в языке C.

§ Нельзя использовать символ '/'.

Единственным исключением из перечисленных правил служит корневая директория, которая всегда имеет имя "/". Эта же директория по вполне понятным причинам является единственным файлом, обязанным иметь уникальное имя во всей файловой системе. Для всех остальных файлов имена должны быть уникальными только в рамках той директории, в которую они непосредственно входят. Полные имена файлов могут включать в себя достаточно много имен директорий и быть очень длинными, с ними не всегда удобно работать. Тогда на помощь нам могут прийти понятия текущей или рабочей директории и относительного имени файла.

Для каждой работающей программы в операционной системе, включая командный интерпретатор (shell) , который обрабатывает вводимые вами команды и высвечивает приглашение к их вводу, некоторая директория в логической структуре файловой системы назначается текущей или рабочей для данной программы. Узнать, какая директория является текущей для вашего командного интерпретатора, можно с помощью команды операционной системы pwd.

Зная текущую директорию, мы можем проложить путь по графу файлов от текущей директории к интересующему нас файлу. Запишем последовательность узлов, которые встретятся на этом пути следующим образом. Узел, соответствующий текущей директории в запись не включаем. При движении по направлению к корневому каталогу каждый новый встретившийся узел будем обозначать двумя символами "точка" - "..", а при движении по направлению от корневого каталога будем записывать имя встретившегося узла. Разделим обозначения, относящиеся к разным узлам в этой записи символами "/". Полученную строку принято называть относительным именем файла. Относительные имена файлов меняются при смене рабочего каталога. Так, если рабочий каталог - это директория "/d", то для файла "/usr/b/aaa.c" его относительное имя будет "../usr/b/aaa.c", а если рабочий каталог - это директория "/usr/b", то его относительное имя - "ааа.с".
Для полноты картины имя текущего каталога можно тоже вставлять в относительное имя файла, обозначая текущий каталог одиночным символом "точка" - ".". Тогда наши относительные имена будут выглядеть как "./../usr/b/aaa.c" и "./aaa.c" соответственно.
Программы, запущенные вами с помощью командного интерпретатора, будут иметь в качестве рабочей директории его рабочую директорию, если вы внутри этих программ не измените ее расположение с помощью специального системного вызова.
Для каждого нового пользователя в системе заводится специальная директория, которая становится текущей сразу после входа в систему. Эта директория получила название домашней директории пользователя.

4. Команды cd - смены текущей директории и ls - просмотра состава директории.

Для смены текущей директории командного интерпретатора можно воспользоваться командой cd от (change directory). Для этого необходимо набрать команду в виде

cd имя_директории,

где имя_директории - полное или относительное имя директории, которую вы хотите сделать текущей. Команда cd без параметров сделает текущей директорией вашу домашнюю директорию.
Просмотреть содержимое текущей или любой другой директории можно, воспользовавшись командой ls (от list). Если ввести ее без параметров, эта команда распечатает вам список файлов, находящихся в текущей директории. Если же в качестве параметра задать полное или относительное имя директории:

ls имя_директории,

она распечатает список файлов в указанной директории. Надо отметить, что в полученный список не войдут файлы, имена которых начинаются с символа "точка" - '.'. Такие файлы обычно создаются различными системными программами для своих целей (например, для настройки их работы). Посмотреть полный список файлов можно, дополнительно указав команде ls опцию-a, т.е. набрав ее в виде

Ls -a

или

ls -a имя_директории.


Сейчас читают про: