В этой главе мы подробно обсудим управление каталогами в Unix.
Каталог — это файл, соло-работа которого заключается в хранении имен файлов и соответствующей информации. Все файлы, будь то обычные, специальные или каталог, содержатся в каталогах.
Unix использует иерархическую структуру для организации файлов и каталогов. Эта структура часто упоминается как дерево каталогов. Дерево имеет единственный корневой узел, символ косой черты ( / ) и все остальные каталоги находятся под ним.
Домашний каталог
Каталог, в который вы попадаете при первом входе в систему, называется вашим домашним каталогом.
Вы будете выполнять большую часть своей работы в своем домашнем каталоге и подкаталогах, которые вы будете создавать для организации ваших файлов.
Вы можете зайти в свой домашний каталог в любое время, используя следующую команду —
$cd ~ $
Здесь ~ указывает домашний каталог. Предположим, вам нужно перейти в домашний каталог любого другого пользователя, используйте следующую команду —
$cd ~username $
Чтобы перейти в ваш последний каталог, вы можете использовать следующую команду —
$cd - $
Абсолютные / Относительные имена путей
Каталоги расположены в иерархии с корнем (/) вверху. Положение любого файла в иерархии описывается его путем.
Элементы пути разделяются символом /. Путь является абсолютным, если он описан относительно корня, поэтому абсолютные пути всегда начинаются с /.
Ниже приведены некоторые примеры абсолютных имен файлов.
/etc/passwd /users/sjones/chem/notes /dev/rdsk/Os3
Путь также может быть относительно вашего текущего рабочего каталога. Относительные пути никогда не начинаются с /. Относительно домашнего каталога пользователя amrood, некоторые пути могут выглядеть так:
chem/notes personal/res
Чтобы в любое время определить, где вы находитесь в иерархии файловой системы, введите команду pwd для печати текущего рабочего каталога —
$pwd /user0/home/amrood $
Каталоги листинга
Чтобы перечислить файлы в каталоге, вы можете использовать следующий синтаксис —
$ls dirname
Ниже приведен пример для перечисления всех файлов, содержащихся в каталоге / usr / local —
$ls /usr/local X11 bin gimp jikes sbin ace doc include lib share atalk etc info man ami
Создание каталогов
Теперь мы поймем, как создавать каталоги. Каталоги создаются с помощью следующей команды —
$mkdir dirname
Здесь каталог — это абсолютный или относительный путь к каталогу, который вы хотите создать. Например, команда —
$mkdir mydir $
Создает каталог mydir в текущем каталоге. Вот еще один пример —
$mkdir /tmp/test-dir $
Эта команда создает каталог test-dir в каталоге / tmp . Команда mkdir не выдает никаких результатов, если она успешно создает запрошенный каталог.
Если в командной строке указано более одного каталога, mkdir создает каждый из этих каталогов. Например, —
$mkdir docs pub $
Создает каталоги docs и pub под текущим каталогом.
Создание родительских каталогов
Теперь мы поймем, как создавать родительские каталоги. Иногда, когда вы хотите создать каталог, его родительский каталог или каталоги могут не существовать. В этом случае mkdir выдает следующее сообщение об ошибке:
$mkdir /tmp/amrood/test mkdir: Failed to make directory "/tmp/amrood/test"; No such file or directory $
В таких случаях вы можете указать опцию -p для команды mkdir . Он создает все необходимые каталоги для вас. Например —
$mkdir -p /tmp/amrood/test $
Приведенная выше команда создает все необходимые родительские каталоги.
Удаление каталогов
Каталоги можно удалить с помощью команды rmdir следующим образом:
$rmdir dirname $
Примечание. Чтобы удалить каталог, убедитесь, что он пуст, что означает, что в этом каталоге не должно быть файлов или подкаталогов.
Вы можете удалить несколько каталогов одновременно:
$rmdir dirname1 dirname2 dirname3 $
Приведенная выше команда удаляет каталоги dirname1, dirname2 и dirname3, если они пусты. Команда rmdir не выдает никаких результатов, если она прошла успешно.
Изменение каталогов
Вы можете использовать команду cd, чтобы сделать больше, чем просто перейти в домашний каталог. Вы можете использовать его для перехода в любой каталог, указав правильный абсолютный или относительный путь. Синтаксис как указано ниже —
$cd dirname $
Здесь dirname — это имя каталога, который вы хотите изменить. Например, команда —
$cd /usr/local/bin $
Изменения в каталоге / usr / local / bin . Из этого каталога вы можете перейти в каталог / usr / home / amrood, используя следующий относительный путь —
$cd ../../home/amrood $
Переименование каталогов
Команду mv (move) также можно использовать для переименования каталога. Синтаксис выглядит следующим образом —
$mv olddir newdir $
Вы можете переименовать каталог mydir в yourdir следующим образом:
$mv mydir yourdir $
Справочники. (точка) и .. (точка)
Имя файла (точка) представляет текущий рабочий каталог; а имя файла .. (точка) представляет каталог на один уровень выше текущего рабочего каталога, часто называемый родительским каталогом.
Если мы введем команду, чтобы отобразить список текущих рабочих каталогов / файлов, и воспользуемся опцией -a для вывода списка всех файлов и опцией -l для предоставления длинного списка, мы получим следующий результат.