Чтение онлайн

на главную - закладки

Жанры

UNIX — универсальная среда программирования
Шрифт:

$ mv
(или
cp
)
file1 file2 ... directory

Здесь показана пересылка (или копирование) одного или нескольких файлов в каталог, который является последним аргументом. Связи или копии файлов получаются под теми же именами. Например, если вы хотите "набить руку" в работе с редактором, то можете начать с

$ 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). Что получат другие программы, если они смогут перемещаться по дереву каталогов?

2.6 Иерархия каталогов

В первой главе рассмотрение иерархии файловой системы, начиная с каталога

/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)
)

Каталог

/bin
вам уже известен: в нем находятся основные программы типа
who
или
ed
.

Каталог

/dev
(device — устройства) мы обсудим в следующем разделе.

Каталог

/etc
(et cetera — и т.д.) также уже вам встречался ранее. В нем находится различная служебная информация, например файл паролей, и некоторые системные программы, такие, как
/etc/getty
, которая инициирует связь с терминалом для команды
/bin/login
,
/etc/rc
— это файл команд, выполняющихся после раскрутки системы. В файле
/etc/group
содержатся сведения о составе всех групп.

Каталог

/lib
(library — библиотека) включает основные части компилятора языка Си, такие, как
/lib/cpp
— препроцессор Си,
/lib/libc.a
— библиотека стандартных функций Си.

Каталог

/tmp
(temporaries — временное) представляет собой хранилище для временных файлов, создаваемых при выполнении программы.

Например, когда вы вызываете редактор, он создает файл с именем типа

/tmp/e00512
, что позволяет иметь свою копию редактируемого файла, а не работать с оригиналом. Редактор мог бы, конечно, создать копию в вашем текущем каталоге, но есть причина для преимущественного использования
/tmp
: хотя это и маловероятно, в вашем каталоге уже мог присутствовать файл
e00512
. Далее каталог
/tmp
автоматически очищается при запуске системы, так что в случае системной аварии в вашем каталоге не появится ненужный файл. Часто каталог
/tmp
организуется на диске для обеспечения быстрого доступа к нему. Однако здесь возникает проблема: если сразу несколько программ создают файлы в каталоге
/tmp
, их файлы могут перепутаться. Именно поэтому редактор
ed
выбирает особое имя; оно построено таким образом, чтобы никакая другая программа не могла выбрать то же имя для временного файла. В гл. 5 и 6 будет показан способ достижения этого.

Каталог

/usr
называется файловой системой пользователей, хотя он может быть мало связан с файлами настоящих пользователей системы. На своей машине мы используем исходные каталоги
/usr/bwk
и
/usr/rob
, но у вас часть иерархии, начинающаяся с
/usr
, может быть другой. Независимо от того, находятся ли ваши файлы в каталоге, вложенном в
/usr
, вы всегда найдете в нем что-нибудь интересное (если нет местной специфики). Так же, как и в каталоге
/
, здесь есть каталоги с именами
/usr/bin
,
/usr/lib
и
/usr/tmp
. Эти каталоги имеют назначение, сходное со своими тезками в каталоге
/
, но содержат программы, менее критичные для системы. Например, программа
nroff
обычно находится в
/usr/bin
, а не в
/bin
, библиотеки компилятора с Фортрана располагаются в
/usr/lib
. Правда, "критичными" для разных систем считаются разные программы. Некоторые системы, такие, как широко распространенная седьмая версия, все программы хранят в
/bin
, не имея дела с
/usr/bin
. В других системах каталог
/usr/bin
разбивается на два каталога в зависимости от частоты использования.

Поделиться:
Популярные книги

Камень Книга седьмая

Минин Станислав
7. Камень
Фантастика:
фэнтези
боевая фантастика
6.22
рейтинг книги
Камень Книга седьмая

Хозяин Теней 5

Петров Максим Николаевич
5. Безбожник
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Хозяин Теней 5

#Бояръ-Аниме. Газлайтер. Том 37

Володин Григорий Григорьевич
37. История Телепата
Фантастика:
фэнтези
аниме
боевая фантастика
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 37

Старый, но крепкий 7

Крынов Макс
7. Культивация без насилия
Фантастика:
рпг
уся
фэнтези
5.00
рейтинг книги
Старый, но крепкий 7

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Наша навсегда

Зайцева Мария
2. Наша
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Наша навсегда

Кодекс Охотника. Книга IX

Винокуров Юрий
9. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга IX

Кодекс Охотника. Книга XIII

Винокуров Юрий
13. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
аниме
7.50
рейтинг книги
Кодекс Охотника. Книга XIII

Господин из завтра. Тетралогия.

Махров Алексей
Фантастика:
альтернативная история
8.32
рейтинг книги
Господин из завтра. Тетралогия.

Кодекс Крови. Книга ХIII

Борзых М.
13. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХIII

Я еще царь. Книга XXX

Дрейк Сириус
30. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я еще царь. Книга XXX

Матабар IV

Клеванский Кирилл Сергеевич
4. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар IV

Мастер 4

Чащин Валерий
4. Мастер
Фантастика:
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Мастер 4

Жена со скидкой, или Случайный брак

Ардова Алиса
Любовные романы:
любовно-фантастические романы
8.15
рейтинг книги
Жена со скидкой, или Случайный брак