Файловая система ОС Unix имеет иерархическую (древовидную) структуру, основанием которой является корневой каталог, который имеет имя /. Корневой каталог файловой системы Unix всегда один. Расположение файлов в файловом дереве не определяется их расположением на том или ином физическом или логическом диске. Файловые структуры, находящиеся на различных дисках, в том числе на дисках других компьютеров, с помощью специальной команды (mount) монтируются на файловое дерево Unix, становясь частью единого файлового дерева. Все операции над файлами с точки зрения пользователя выполняются одинаковым образом, независимо от их физического месторасположения.
Kорневой каталог Unix обычно содержит такие каталоги, как:
bin | для наиболее используемых команд; |
boot | загрузчик операционной системы; |
dev | для специальных файлов, представляющих устройства (дисплеи, диски, CD-ROM, принтеры и т.п.); |
etc | для хранения большинства конфигурационных файлов системы; |
home | для хранения домашних каталогов пользователей; |
lib | важнейшие библиотеки; |
mnt | для подключения новых файловых систем; |
tmp | для хранения временных файлов; |
usr | содержит каталоги и обычные файлы, содержащие информацию, привлекаемую при решении задач пользователя, а также большинство стандартных программ; |
var | содержит буферные каталоги, файлы регистрации, учетную информацию, базы данных и другие данные, которые быстро разрастаются и изменяются. |
Последовательность имен каталогов, разделенных символом «/», ведущая от некоторого каталога к каталогу, в котором располагается данный файл, называется маршрутом к этому файлу. Последовательность имя_маршрута/имя_файла называется путевым именем файла. Если путевое имя отсчитывается от корневого каталога, оно называется абсолютным (полным), в противном случае – относительным.
Например, каталог /usr, кроме прочего, содержит такие каталоги, как:
bin | хранит дополнительные команды; |
include | хранит фрагменты системных программ; |
lib | хранит дополнительные библиотеки. |
Полные имена этих каталогов будут такими: /usr/bin, /usr/include и /usr/lib
Если в каталоге /usr/bin содержится файл perl, то полное имя файла perl будет таким: /usr/bin/perl
Если же пользователь в данный момент находится в каталоге /usr файловой системы и ему необходимо открыть файл /usr/include/sys/conf, то он может обратиться к этому же файлу по относительному имени: include/sys/conf
Существует два специальных имени:
. | это имя текущего каталога; |
.. | это имя родительского каталога (т.е. каталога, находящегося на уровень выше данного на пути к корневому каталогу). |
В качестве имен файлов, как правило, может использоваться любая последовательность из букв, цифр и спецсимволов, кроме символа «/». Причина этого ограничения очевидна: данный символ используется как разделитель имен в составе пути, поэтому не должен встречаться в самих именах. Длина имени ограничивается 256 символами. Прописные и строчные буквы в именах файлов различаются. Например, файл myfile и файл myFile – это разные файлы. Имя файла может включать в себя расширение, обычно используемое для указания на тип файла. Расширение определяется как часть имени файла, располагающаяся после последней точки. Файлы, имена которых начинаются с точки, являются скрытыми.
Есть несколько символов, допустимых в именах файлов и каталогов, которые нужно использовать с осторожностью. Это так называемые спецсимволы: «*», «\», «&», «<», «>», «;», «(«, «)», «|», а также символы пробела и табуляции. Дело в том, что эти символы имеют специальное значение, поэтому нужно будет специально позаботиться о том, чтобы эти символы воспринимались как часть имени файла или каталога. Для этого необходимо предварить спецсимвол символом «\» (обратный слэш).