[ Страница назад | Страница вперед | Содержание | Индекс | Домой | Юридическая информация | Поиск ]

Руководство пользователя: Операционная система и устройства


Работа с каталогами

Для работы с каталогами вам достаточно уметь выполнять несколько стандартных операций.

В следующем списке приведены команды, позволяющие выполнять эти операции, с примерами их применения:

Создание каталогов (команда mkdir)

Команда mkdir создает один или несколько новых каталогов с именами, перечисленными в параметре Каталог. Новые каталоги будут содержать стандартные записи: точку (.) и две точки (..). Режим доступа к новым каталогам можно задать в параметре -mРежим.

Новый каталог создается в текущем рабочем каталоге, если только не указан полный путь к другой точке файловой системы.

Например, для создания нового каталога с именем Test в текущем рабочем каталоге с правами доступа по умолчанию введите:

mkdir Test

Нажмите Enter.

Для создания каталога Test с правами доступа rwxr-xr-x в уже существующем каталоге /home/demo/sub1 введите:

mkdir -m 755 /home/demo/sub1/Test

Нажмите Enter.

Для создания каталога Test с режимом доступа по умолчанию в каталоге /home/demo/sub2 введите:

mkdir -p /home/demo/sub2/Test

Нажмите Enter.

Флаг -p означает, что при необходимости следует создать также каталоги /home, /home/demo и /home/demo/sub2.

Полный синтаксис приведен в описании команды mkdir в книге AIX 5L Version 5.1 Commands Reference.

Перемещение и переименование каталогов (команда mvdir)

Команда mvdir перемещает или изменяет имя каталога.

Например, для перемещения каталога введите:

mvdir book manual

Нажмите Enter.

Каталог book будет помещен в каталог manual, если каталог manual уже существует. Иначе каталог book будет переименован в manual.

>Для перемещения и одновременного переименования каталога введите:

mvdir book3 proj4/manual

Нажмите Enter.

Каталог book3 будет помещен в каталог proj4 и переименован в manual (если только каталог manual не существует).

Полный синтаксис приведен в описании команды mvdir в книге AIX 5L Version 5.1 Commands Reference.

Просмотр текущего каталога (команда pwd)

Команда pwd записывает в стандартный вывод полное имя текущего каталога (начиная с / - корневого каталога). Все каталоги разделяются символом косая черта (/). Каталог / (корневой) представлен первой косой чертой (/); последним указан текущий каталог.

Для того чтобы узнать текущий каталог, введите:

pwd

Нажмите Enter.

Будет показано полное имя текущего каталога, например:

/home/thomas

Полный синтаксис приведен в описании команды pwd в книге AIX 5L Version 5.1 Commands Reference.

Переход в другой каталог (команда cd)

Команда cd изменяет текущий каталог. У вас должны быть права доступа на выполнение (поиск) к новому каталогу.

Если параметр Каталог не указан, команда cd переходит в домашний каталог ($HOME в оболочках ksh и bsh, $home в оболочке csh). Если указан полный путь, он становится текущим каталогом. Полный путь начинается с косой черты (/), обозначающей корневой каталог /, точки (".") , обозначающей текущий каталог, или двух точек (..) , обозначающих родительский каталог. Если указан не полный путь, команда cd ищет указанный подкаталог в каталогах, перечисленных в переменной оболочки $CDPATH (в оболочке csh - $cdpath). Синтаксис и семантика этой переменной аналогичен переменной оболочки $PATH ($path в оболочке csh).

Например, для перехода в свой домашний каталог введите:

cd

Нажмите Enter.

Для перехода в каталог /usr/include введите:

cd /usr/include

Нажмите Enter.

Текущим каталогом станет /usr/include.

Для перехода на один уровень ниже в дереве каталогов, к каталогу sys, введите:

cd sys

Нажмите Enter.

Если текущий каталог /usr/include содержал подкаталог sys, текущим каталогом станет /usr/include/sys.

Для перехода на один уровень вверх в дереве каталогов введите:

cd ..

Нажмите Enter.

Специальное имя, две точки (..)ссылается на каталог, находящийся непосредственно над текущим каталогом, то есть его родительский каталог.

Полный синтаксис приведен в описании команды cd в книге AIX 5L Version 5.1 Commands Reference.

Копирование каталогов (команда cp)

Команда cp или copy создает копию содержимого файла или каталога, указанного в параметре Исходный_файл или Исходный_каталог, в файле или каталоге с именем Целевой_файл или Целевой_каталог. Если файл Целевой_файл существует, копия записывается поверх предыдущего содержимого файла. При копировании нескольких Исходных_файлов должен быть указан целевой каталог.

Для помещения копии файла Исходный_файл в определенный каталог укажите путь к этому каталогу в параметре Целевой_каталог. При копировании в другой каталог файлы сохраняют свои имена, если только в конце пути не было указано новое имя файла. Команда cp также копирует целые каталоги в другие каталоги. Для этого нужно указать флаг -r или -R.

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

cp /home/janet/clients/* /home/nick/customers

Нажмите Enter.

Все файлы из каталога clients будут скопированы в каталог customers.

Для копирования каталога вместе со всеми его файлами и подкаталогами в другой каталог введите:

cp -R /home/nick/clients /home/nick/customers

Нажмите Enter.

Каталог clients со всеми его файлами, подкаталогами и файлами в этих подкаталогах будет скопирован в каталог customers.

Полный синтаксис приведен в описании команды cp в книге AIX 5L Version 5.1 Commands Reference.

Просмотр содержимого каталога (команда ls)

Содержимое каталога можно просмотреть командой ls.

Команда ls

Команда ls записывает в стандартный вывод содержимое каждого из указанных Каталогов или имя каждого из указанных Файлов, с дополнительной информацией, определяемой флагами. Если Файл или Каталог не указан, команда ls показывает содержимое текущего каталога.

По умолчанию команда ls сортирует всю информацию по имени файла. Если команда выполняется администратором, то по умолчанию применяется флаг -A и выводятся все записи, за исключением точки (.) и двух точек (..). Для просмотра всех файлов, включая те, имена которых начинаются с . (точки), введите команду ls -a.

Есть три основных способа форматирования полученного вывода:

Число символов в строке вывода команда ls получает из переменной среды $COLUMNS. Если эта переменная не задана, команда читает файл terminfo. Если команда ls не может определить число символов в строке ни одним из этих способов, принимается значение по умолчанию, равное 80.

Информация, показанная с флагом -e или -l, означает следующее:

Если первый символ равен:

d Запись является каталогом.
b Запись является специальным блочным файлом.
c Запись является специальным символьным файлом.
l Запись является символьной связью.
p Запись является специальным файлом конвейера (FIFO).
s Запись является локальным сокетом.
- Запись является обычным файлом.

Следующие девять символов разделены на три набора по три символа в каждом. Первые три символа показывают права доступа владельца. Следующие три символа показывают права доступа прочих пользователей группы. Последние три символа показывают права доступа всех остальных пользователей. Символы каждого набора показывают права доступа на чтение, запись и выполнение файла. Права доступа на выполнение для каталога разрешают поиск файла в каталоге.

Права доступа обозначаются следующим образом:

r Предоставлены права доступа для чтения
t Только владелец каталога или файла может удалять или переименовывать файлы в каталоге, даже если у других пользователей есть права доступа для записи в каталог.
w Предоставлены права доступа для записи (редактирования).
x Предоставлены права доступа для выполнения (поиска).
- Соответствующие права доступа не предоставлены.

С флагом -e показывается та же информация, что и с флагом -l, но добавляется 11-й символ, означающий следующее:

+ Показывает, что для файла есть расширенная информация о защите. Например, для файла может существовать расширенный ACL, атрибуты режима TCB или TP.
- Показывает, что для файла нет расширенной информации о защите.

Команда ls также показывает полное число блоков в файле, включая занятые файлом косвенно.

Например, для просмотра всех файлов в текущем каталоге введите:

ls -a

Нажмите Enter.

При этом будут показаны все файлы, включая

Для просмотра подробной информации введите:

ls -l chap1 .profile

Нажмите Enter.

Будет показан расширенный список с подробной информацией о файлах chap1 и .profile.

Для просмотра подробной информации о каталоге введите:

ls -d -l . manual manual/chap1

Нажмите Enter.

Будет показана подробная информация о содержимом каталогов . (точка) и manual, а также о файле manual/chap1. Без флага -d был бы показан список с подробной информацией о файлах в каталогах . и manual, а не подробная информация о самих каталогах.

Полный синтаксис приведен в описании команды ls в книге AIX 5L Version 5.1 Commands Reference.

Удаление каталогов (команда rmdir)

Команда rmdir удаляет из системы указанный Каталог. Удаляемый каталог должен быть пуст (он может содержать только . и ..) , и у вас должны быть права на запись в его родительский каталог. Для проверки наличия файлов в каталоге введите команду ls -aКаталог.

Например, для очистки и удаления каталога введите:

rm mydir/* mydir/.* 
rmdir mydir

Нажмите Enter.

Сначала будет удалено содержимое каталога mydir, а затем и сам каталог. Команда rm выдаст сообщение об ошибке при попытке удалить каталог точка (.) и две точки (..). Эти каталоги будут удалены командой rmdir вместе с каталогом mydir. 

Заметьте, что команда rmmydir/* mydir/.* отдельно удаляет файлы, имена которых начинаются с точки, и файлы, имена которых не начинаются с точки. Вы можете не знать, что в каталоге есть файлы, имена которых начинаются с точки, поскольку команда ls обычно не показывает их, если только не указан флаг -a.

Для удаления каталога /tmp/jones/demo/mydir и всех его подкаталогов введите:

cd /tmp
rmdir -p jones/demo/mydir

Нажмите Enter.

Каталог jones/demo/mydir будет удален из каталога /tmp. Если удаляемый каталог не будет пуст, или если у вас нет прав на запись в него, команда будет завершена с соответствующим сообщением об ошибке.

Полный синтаксис приведен в описании команды rmdir в книге AIX 5L Version 5.1 Commands Reference.

Сравнение содержимого каталогов (команда dircmp)

Команда dircmp сравнивает два каталога, Каталог1 и Каталог2, записывая результат в стандартный вывод. Сначала команда dircmp сравнивает имена файлов в обоих каталогах. Если в них обоих обнаруживаются файлы с одинаковыми именами, команда dircmp сравнивает содержимое этих файлов.

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

Например, для создания отчета о различиях между файлами в каталогах proj.ver1 и proj.ver2 введите:

dircmp proj.ver1 proj.ver2

Нажмите Enter.

Будут показаны различия между каталогами proj.ver1 и proj.ver2. В полученном отчете отдельно будут перечислены файлы, найденные только в одном из каталогов, и файлы, существующие в обоих. Если файл найден в обоих каталогах, команда dircmp отмечает, совпадают ли его копии.

Для просмотра подробных различий между файлами в каталогах proj.ver1 и proj.ver2 введите:

dircmp -d -s proj.ver1 proj.ver2

Нажмите Enter.

Флаг -s отменяет вывод информации об одинаковых файлах. Флаг -d указывает на необходимость распечатки результатов сравнения файлов командой diff.

Полный синтаксис приведен в описании команды dircmp в книге AIX 5L Version 5.1 Commands Reference.

Связанная информация

Обзор команд

Обзор процессов

Глава 4, Перенаправление ввода и вывода

Файловые системы

Обзор каталогов

Глава 6, Файлы

Связывание файлов и каталогов

Глава 8, Резервное копирование и носители

Глава 9, Защита системы и файлов


[ Страница назад | Страница вперед | Содержание | Индекс | Домой | Юридическая информация | Поиск ]