Читать книгу 📗 "UNIX — универсальная среда программирования - Керниган Брайан Уилсон"
Таблица 1.1: Сводка команд файловой системы
1.3 Продолжаем изучать файлы: каталоги
Система отличит ваш файл с именем
junkВ общем случае каждый пользователь имеет свой личный каталог, иногда называемый начальным каталогом, который содержит только принадлежащие ему файлы. Входя в систему, вы оказываетесь в вашем личном (начальном) каталоге. Можно сменить каталог, с которым вы работаете (его часто называют рабочим или текущим каталогом), но ваш личный каталог останется тем же. Если не предпринять специальных действий, новый файл, создаваемый вами, попадает в текущий каталог. Так как вначале текущим является личный каталог, ваш файл никак не связан с файлом, имеющим то же имя, в чужом каталоге.
Каталог может содержать и другие каталоги как обычные файлы. Естественным способом представления такой организации каталогов служит дерево файлов и каталогов. В процессе обхода дерева — от корня вдоль нужных ветвей — можно найти любой файл системы. Можно поступить и наоборот: начать в произвольном месте и двигаться по направлению к корню.
Рассмотрим первый способ. Основным нашим средством будет команда
pwd$ pwd/usr/you$Команда выведет сообщение о том, что вы находитесь в каталоге you, а сам каталог — в каталоге
usr'/''/'/usr/usr/youpwd$ ls /usr/youвы получите тот же самый список файлов, который выдает только
lsls$ ls /usrЭто приведет к появлению длинного списка имен, среди которых есть и ваш начальный каталог
youНа следующем шаге попытайтесь распечатать сам корневой каталог. В результате получите ответ, подобный следующему:
$ ls /binbootdevetclibtmpunixusr$(Пусть вас не смущает то, что символ
'/'unixТеперь попробуйте ввести
$ cat /usr/you/junk(если файл
junk/usr/you/junkФайловая система имеет структуру, подобную генеалогическому дереву:

Рис. 1.1: Карта файловой системы UNIX
Ваш файл с именем
junkpaulmaryАбсолютные имена не слишком впечатляют, если все интересующие вас файлы находятся в вашем каталоге, но если вы работаете совместно с кем-либо или над несколькими проектами одновременно, они становятся весьма удобными. Например, ваши коллеги могут распечатать файл
junk$ cat /usr/you/junkСоответственно вы можете выяснить, какие файлы есть у
mary$ ls /usr/marydatajunk$или скопировать один из ее файлов:
$ cp /usr/mary/data dataВы можете редактировать ее файл:
$ ed /usr/mary/dataЕсли Мэри не хочет, чтобы вы имели доступ к ее файлам, или того же не хотите вы, можно обеспечить защищенность каждого файла и каталога. С этой целью предусмотрены права доступа на чтение-запись-выполнение для владельца, группы и всех остальных пользователей. Право доступа используется для контроля обращения к файлу или каталогу. (Вспомните результат
ls -lЗавершая серию экспериментов с абсолютными именами, попробуйте ввести
$ ls /bin /usr/binНе кажутся ли имена вам знакомыми? Когда вы запускаете команду, задавая ее после приглашения, система ищет файл с указанным именем. Вначале поиск ведется в вашем рабочем каталоге (где его, вероятно, найти не удается), затем в каталоге
/bin/usr/bincatls$ /bin/dateMon Sep 26 23:39:32 EDT 1983$ /bin/whosrm tty1 Sep 26 22:20cvw tty4 Sep 26 22:40you tty5 Sep 26 23:04$