Таблица 1.1: Сводка команд файловой системы
1.3 Продолжаем изучать файлы: каталоги
Система отличит ваш файл с именем
junk
В общем случае каждый пользователь имеет свой личный каталог, иногда называемый начальным каталогом, который содержит только принадлежащие ему файлы. Входя в систему, вы оказываетесь в вашем личном (начальном) каталоге. Можно сменить каталог, с которым вы работаете (его часто называют рабочим или текущим каталогом), но ваш личный каталог останется тем же. Если не предпринять специальных действий, новый файл, создаваемый вами, попадает в текущий каталог. Так как вначале текущим является личный каталог, ваш файл никак не связан с файлом, имеющим то же имя, в чужом каталоге.
Каталог может содержать и другие каталоги как обычные файлы. Естественным способом представления такой организации каталогов служит дерево файлов и каталогов. В процессе обхода дерева — от корня вдоль нужных ветвей — можно найти любой файл системы. Можно поступить и наоборот: начать в произвольном месте и двигаться по направлению к корню.
Рассмотрим первый способ. Основным нашим средством будет команда
pwd
$ pwd
/usr/you
$
Команда выведет сообщение о том, что вы находитесь в каталоге you, а сам каталог — в каталоге
usr
'/'
'/'
/usr
/usr/you
pwd
$ ls /usr/you
вы получите тот же самый список файлов, который выдает только
ls
ls
$ ls /usr
Это приведет к появлению длинного списка имен, среди которых есть и ваш начальный каталог
you
На следующем шаге попытайтесь распечатать сам корневой каталог. В результате получите ответ, подобный следующему:
$ ls /
bin
boot
dev
etc
lib
tmp
unix
usr
$
(Пусть вас не смущает то, что символ
'/'
unix
Теперь попробуйте ввести
$ cat /usr/you/junk
(если файл
junk
/usr/you/junk
Файловая система имеет структуру, подобную генеалогическому дереву:
Рис. 1.1: Карта файловой системы UNIX
Ваш файл с именем
junk
paul
mary
Абсолютные имена не слишком впечатляют, если все интересующие вас файлы находятся в вашем каталоге, но если вы работаете совместно с кем-либо или над несколькими проектами одновременно, они становятся весьма удобными. Например, ваши коллеги могут распечатать файл
junk
$ cat /usr/you/junk
Соответственно вы можете выяснить, какие файлы есть у
mary
$ ls /usr/mary
data
junk
$
или скопировать один из ее файлов:
$ cp /usr/mary/data data
Вы можете редактировать ее файл:
$ ed /usr/mary/data
Если Мэри не хочет, чтобы вы имели доступ к ее файлам, или того же не хотите вы, можно обеспечить защищенность каждого файла и каталога. С этой целью предусмотрены права доступа на чтение-запись-выполнение для владельца, группы и всех остальных пользователей. Право доступа используется для контроля обращения к файлу или каталогу. (Вспомните результат
ls -l
Завершая серию экспериментов с абсолютными именами, попробуйте ввести
$ ls /bin /usr/bin
Не кажутся ли имена вам знакомыми? Когда вы запускаете команду, задавая ее после приглашения, система ищет файл с указанным именем. Вначале поиск ведется в вашем рабочем каталоге (где его, вероятно, найти не удается), затем в каталоге
/bin
/usr/bin
cat
ls
$ /bin/date
Mon Sep 26 23:39:32 EDT 1983
$ /bin/who
srm tty1 Sep 26 22:20
cvw tty4 Sep 26 22:40
you tty5 Sep 26 23:04
$