Учебники

Unix / Linux — Управление каталогами

В этой главе мы подробно обсудим управление каталогами в 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 для предоставления длинного списка, мы получим следующий результат.