«содержащихся» в нем подкаталогов) и их атрибутов. По этому, когда говорится о древовидной структуре и организации файловой системы, подразумевается, что речь идет о не физической, а о логической структуризации файлов. Только с учетом этого контекста далее будем использовать общепринятую терминологию: «директория содержит файлы, подкаталоги» и т.д.
1.2.2. Домашний и текущий каталог. Относительный путь
Каждому пользователю, зарегистрированному в системе, выделяется личный, или домашний, каталог. В этот каталог пользователь попадает сразу после входа в систему, здесь он может создавать и хранить собственные каталоги и файлы. Пользователь v100- 1, войдя в систему, получает в свое распоряжение домашний каталог, полный путь которого: /home/groups/v100/v100-1. Сразу после входа в систему этот каталог является также и текущим каталогом. Для ответа на вопрос, «какой каталог является текущим?», в UNIX предусмотрена команда pwd (print working directory) – пример 1.1.
Команда pwd – просмотр пути текущего каталога
Здесь и далее в форматах команд, в квадратные скобки заключаются необязательные элементы в записи команды.
Пример 1.1. Просмотр пути текущего каталога v100-1@beta:~> pwd
/home/groups/v100/v100-1 v100-1@beta:~>
Что такое текущий каталог? Для чего он нужен и чем удобен? Полный (абсолютный) путь описывает местоположение каталога или файла в дереве файловой системы относительно корня (корневого каталога). Теоретически этого вполне достаточно для манипулирования файлами и каталогами. При этом постоянно набирать на клавиатуре длинные, содержащие много символов, абсолютные пути долго и неудобно. Если пользователь работает с файлами, находящимися в каком-либо каталоге, то целесообразно и логично как-то зафиксировать путь к этому каталогу, т.е. сделать этот ката-
26
лог текущим. После этого можно работать с файлами выбранного таким образом каталога уже без указания длинного пути. Более того, появляется возможность записи более коротких путей относительно текущего каталога, обозначаемого как «.» – точка, к близлежащим (на дереве файловой системы) каталогам и файлам.
В UNIX-системах короткие (относительные) пути могут записываться относительно текущего или домашнего каталога, обозначаемого как «~» – символ волны или «тильда».
Для файлов и каталогов, находящихся непосредственно в текущем каталоге, путь можно не указывать совсем или в ряде случаев путь указывается как «./имя». По такому же принципу указывается путь к объектам, расположенным непосредственно в домашнем каталоге, как «~/имя». Если текущий или домашний каталог содержит вложенные каталоги, то, как и в случае абсолютного пути, записывается последовательность вложенных имен, разделяемая прямым слешем «/». Если же наоборот, необходимо указать путь к каталогам верхнего уровня, то каждый переход на уровень выше обозначается как «..» – две последовательные точки. Например, путь на два уровня вверх относительно текущего каталога будет записываться как «./../..», а такой же путь относительно домашнего каталога будет выглядеть как «~/../..».
Для задания и изменения текущего каталога в UNIX-системах предусмотрена команда cd (change directory).
Команда cd – задание или изменение текущего каталога
Пример 1.2 показывает, как по абсолютному пути перейти в каталог /usr/share/liblab/proverbs (сделать его текущим). Команда отделяется от пути одним или несколькими пробелами. Вернуться в домашний каталог можно аналогичным образом (пример 1.3).
Пример 1.2. Изменение текущего каталога v100-1@beta:~> cd /usr/share/liblab/proverbs v100-1@beta:/usr/share/liblab/proverbs> pwd /usr/share/liblab/proverbs v100-1@beta:/usr/share/liblab/proverbs>
Пример 1.3. Возвращение в домашний каталог пополному пути v100-1@beta:/usr/share/liblab/proverbs>cd /home/groups/v100/v100-1 v100-1@beta:~>pwd
/home/groups/v100/v100-1 v100-1@beta:~>
27
Существует и более простой способ перехода в домашний каталог (пример 1.4). Более того, если использовать команду cd вообще без параметров – результат будет тот же.
Пример 1.4. Короткое возвращение в домашний каталог v100-1@beta:/usr/share/liblab/proverbs>cd ~ v100-1@beta:~>pwd
/home/groups/v100/v100-1 v100-1@beta:~>
Как уже отмечалось, запись путей к каталогам и файлам возможна не только относительно корневого каталога, но и относительно текущего и домашнего каталога. Причем пути записываются не только «вниз» – по направлению от корня, но и «вверх» – по направлению к корню файловой системы. Путь вверх по дереву файловой системы может состоять как из одного, так и из многих шагов относительно текущей директории (пример 1.5).
Пример 1.5. Переходы по дереву «к корню» v100-1@beta:~> cd ./.. v100-1@beta:/home/groups/v100> pwd /home/groups/v105 v100-1@beta:/home/groups/v100> cd ./../.. v100-1@beta:/home> pwd
/home v100-1@beta:/home>
Можно также выстраивать пути, состоящие из шагов к корню, а затем от корня, как путь ./../../usr (пример 1.6).
Пример 1.6. Переход по пути «к корню – от корня» v100-1@beta:/home> cd ./../usr
v100-1@beta:/usr> pwd /usr v100-1@beta:/usr>
Если ставится задача перейти, например, из текущего каталога /usr в каталог v100, то оптимальным будет использование пути относительно домашнего каталога v100-1, поскольку это будет самая короткая запись (пример 1.7).
28
Пример 1.7. Переход по пути «от домашнего каталога» – самый короткий v100-1@beta:/usr>~/..
v100-1@beta:/home/groups/v100>pwd /home/groups/v100 v100-1@beta:/home/groups/v100>cd ./v100-1 v100-1@beta:~>pwd /home/groups/v100/v100-1
v100-1@beta: ~>
На практике пользователь сам определяет, какие способы записи путей лучше использовать при навигации по файловой системе, руководствуясь удобством записи и личным опытом.
1.2.3. Просмотр каталогов и файлов
Важным элементом навигации по файловой системе является просмотр структуры каталогов и файлов, а также их содержания.
Команда tree – просмотр [части] дерева файловой системы
Пример 1.8 показывает использование команды tree для просмотра структуры каталога proverbs в виде дерева. Синим цветом на экране отображаются каталоги, белым цветом – файлы. Этого не видно на черно-белом листе бумаги, поэтому приведен пример команды tree –F. Ключ «F» обеспечивает отображение слеша «/» после имен каталогов при любой цветовой гамме, соответственно у имен файлов слеш отсутствует.
|
|
Пример 1.8. Древовидная структура каталога proverbs |
v100-1@beta: ~>tree –F /usr/share/liblab/proverbs |
||
/usr/share/liblab/proverbs |
||
|-- body/ |
||
| |
|-- birds/ |
|
| |
| |
|-- birds |
| |
| |
`-- goose |
| |
|-- economy/ |
|
| |
| |
|-- money |
| |
| |
`-- thrifty |
| |
`-- life/ |
|
| |
|
|-- food |
| |
|
`-- work |
`-- spirit/
29
|-- happyend/
| |
|-- final |
| |
`-- good |
|-- mind/ |
|
| |
|-- philosph |
| |
`-- strange |
`-- opposite/ |
|
|-- life `-- war
v100-1@beta: ~>
Команда ls – просмотр списка объектов в каталоге
Команда имеет много параметров. Наиболее часто используется: ls без параметров – вывод файлов и подкаталогов текущего ка-
талога;
ls путь/имя_ каталога – вывод файлов и подкаталогов произвольного каталога;
ls --color – вывод содержимого каталога в цвете: зелёный – исполняемые файлы; синий – каталоги; чёрныё – обычные файлы;
ls -l путь/имя_ файлаа – вывод типа файла, владельца файла, прав доступа для разных категорий пользователей и т.д.;
ls -F – ключ «F» обеспечивает отображение слеша «/» после имен каталогов при любой цветовой гамме (пример 1.9).
Пример 1.9. Просмотр списка каталогов и файлов содержащихся в prov-
erbs
v100-1@beta:~> ls -F /usr/share/liblab/proverbs body/ spirit/
v100-1@beta:~>
Пример 1.9 демонстрирует применение команды ls –F для просмотра списка каталогов, являющихся подкаталогами proverbs. Смысл ключа «F» тот же, что и в предыдущем примере.
Применяя команды tree и ls без указания пути можно увидеть структуру и содержание текущего каталога.
Вопрос о просмотре содержания файла решается применением команды cat с указанием имени файла (пример 1.10), если он находится в текущей директории или пути к файлу (пример 1.11).
30