$ cp /usr/src/cmd/ed.с .
получив свою копию исходного текста редактора для экспериментов. Осваивая интерпретатор shell
, исходные тексты которого находятся в нескольких каталогах, задайте
$ mkdir sh
$ cp /usr/src/cmd/sh/* sh
и команда cp
скопирует все исходные тексты shell
в ваш вложенный каталог sh
(мы считаем, что в /usr/src/cmd/sh
нет вложенных каталогов, так как команда cp
не слишком "умна"). В некоторых случаях команду ln
допустимо применять с несколькими именами файлов в качестве аргументов, но имя каталога по-прежнему является последним аргументом. В ряде систем команды mv
, cp
и ln
сами служат связями, ссылающимися на один файл, который анализирует имя команды, чтобы узнать, какое задание выполнить.
Упражнение 2.6
Почему команда ls -l
выдает четыре связи у каталога recipes
?
Подсказка : попробуйте ввести
$ ls -ld /usr/you
Чем эта информация полезна?
Упражнение 2.7
В чем состоит разница между
$ mv junk junk1
и
$ cp junk junk1
$ rm junk
Подсказка : установите связь с junk
и затем используйте ее.
Упражнение 2.8
Команда cp
не производит копирования во вложенных каталогах, а ограничивается файлами первого уровня вложенности. Каковы будут ее действия, если один из аргументов окажется каталогом? Насколько это хорошо и осмысленно? Обсудите возможные преимущества трех вариантов: включить еще один флаг в cp
, чтобы работать с вложенными каталогами, ввести отдельную команду rcp
(рекурсивную cp
) для данного случая или просто предъявить к cp
требование копировать все файлы из каталога, если он встретится среди аргументов (см. гл. 7). Что получат другие программы, если они смогут перемещаться по дереву каталогов?
В первой главе рассмотрение иерархии файловой системы, начиная с каталога /usr/you
, носило несколько неформальный характер. Теперь мы хотим изучить ее последовательно, начиная от корня дерева.
Корневой каталог называется /
:
$ ls /
bin
boot
dev
etc
lib
tmp
unix
usr
$
Программа /unix
— это программа ядра UNIX: когда система начинает работу, /unix
считывается с диска в память и начинает выполняться. Все происходит за два шага: вначале считывается файл /boot
, а затем он считывает /unix
. Более подробно о таком процессе раскрутки можно узнать в справочном руководстве по boot(8)
. Остальные файлы каталога /
, по крайней мере в нашей версии, являются каталогами, каждый из которых представляет законченный раздел файловой системы. После дальнейшего краткого обзора иерархии читателю будет предоставлена возможность поэкспериментировать с упоминаемыми здесь каталогами. Чем лучше вы разберетесь в устройстве файловой системы, тем более эффективно сможете ею пользоваться. В табл. 2.1 указаны подходящие места для поиска, хотя некоторые имена каталогов зависят от системы.
/ |
Корень файловой системы |
/bin |
Основные программы, готовые к выполнению (двоичные) |
/dev |
Файлы устройств |
/etc |
"Разное" системы |
/etc/motd |
Сегодняшнее сообщение при входе в систему |
/etc/passwd |
Файл паролей |
/lib |
Основные библиотеки и т.п. |
/tmp |
Временные файлы; обновляется при запуске системы |
/unix |
Операционная система в форме, готовой к выполнению |
/usr |
Файловая система пользователей |
/usr/adm |
Системная служба: справочная информация и т.п. |
/usr/bin |
Команды для пользователей: troff и т.п. |
/usr/games |
Игровые программы |
/usr/include |
Файлы определений Си-программ, например math.h |
/usr/include/sys |
Системные файлы определений Си-программ, например inode.h |
/usr/lib |
Библиотеки для Си, Фортрана и т.п. |
/usr/man |
Диалоговое справочное руководство |
/usr/man/man1 |
Страницы справочного руководства раздела 1 |
/usr/mdec |
Диагностика ошибок аппаратуры, программы раскрутки и т.п. |
/usr/news |
Служба сообщений пользователей |
/usr/pub |
"Всякая всячина": см. ascii(7) и eqnchar(7) |
/usr/src |
Исходные тексты служебных функций и библиотек |
/usr/src/cmd |
Исходные тексты команд из /bin и /usr/bin |
/usr/src/lib |
Исходные тексты библиотечных функций |
/usr/spool |
Рабочий каталог для взаимодействующих программ |
/usr/spool/lpd |
Временный каталог для печатающего устройства |
/usr/spool/mail |
Почтовые ящики |
/usr/spool/uucp |
Рабочий каталог программ uucp |
/usr/sys |
Исходный текст ядра операционной системы |
/usr/tmp |
Альтернативный временный каталог (редко используется) |
/usr/you |
Ваш начальный каталог |
/usr/you/bin |
Ваши собственные программы |
Таблица 2.1: Интересные каталоги (см. также hier(7)
)
Читать дальше
Конец ознакомительного отрывка
Купить книгу