Следующий файл, создаваемый в этом каталоге, займет освободившуюся позицию, хотя у него, вероятно, будет другой индекс. Команда ln
, имеющая приведенный ниже синтаксис, устанавливает связь с уже существующим файлом:
$ ln old-file new-file
Назначение связи состоит в том, чтобы дать два имени одному и тому же файлу, поэтому он часто оказывается в двух разных каталогах. Во многих системах есть связь с редактором /bin/ed
под названием /bin/е
, так что пользователи могут вызывать редактор как е
. Две связи одного файла указывают на одну и ту же запись, а значит, имеют один и тот же индекс файла:
$ ln junk linktojunk
$ ls -li total 3
15768 -rw-rw-rw- 2 you 29 Sep 27 12:07 junk
15768 -rw-rw-rw- 2 you 29 Sep 27 12:07 linktojunk
15274 drwxrwxrwx 4 you 64 Sep 27 09:34 recipes
$
Целое число, выдаваемое между правом доступа и именем владельца файла, является числом связей файла. Поскольку каждая связь ссылается на индексный дескриптор, все связи одинаково, важны — нет разницы между первой связью и последующими. (Заметим, что общий объем занимаемого на диске пространства, сообщаемый командой ls
, вычисляется неверно из-за двойного подсчета).
Если изменить файл, то изменение обнаружится при обращении к файлу под любым из его имен, так как все связи ссылаются на один файл:
$ echo x > junk
$ ls -l total 3
-rw-rw-rw- 2 you 2 Sep 27 12:37 junk
-rw-rw-rw- 2 you 2 Sep 27 12:37 linktojunk
drwxrwxrwx 4 you 64 Sep 27 09:34 recipes
$ rm linktojunk
$ ls -l total 2
-rw-rw-rw- 1 you 2 Sep 27 12:37 junk
drwxrwxrwx 4 you 64 Sep 27 09:34 recipes
$
После удаления файла linktojunk
число связей опять становится равным единице. Как уже отмечалось, при удалении файла уничтожается лишь связь. Сам же файл сохраняется до тех пор, пока не будет удалена последняя связь. На практике, конечно, большинство файлов имеет единственную связь, но тем не менее вы убедились в том, что можно простым способом повысить гибкость системы.
Предостережение тем, кто слишком торопится: после удаления последней связи данные становятся недоступными. Удаленные файлы попадают скорее в топку, чем в мусорную корзину, и нет средства возродить их из пепла. (Слабая надежда на возрождение все-таки есть. В больших системах UNIX есть рутинная функция дублирования, которая периодически копирует изменяемые файлы в какое-нибудь надежное место типа магнитной ленты, откуда их можно извлечь. Для собственного успокоения вам следует знать, какой объем дублирования обеспечивает ваша система. Если нет ничего, будьте бдительны — любые неполадки с дисками могут обернуться катастрофой.)
Связи файла удобны, если два пользователя совместно работают с ним, но иногда нужна на самом деле cp
:
$ cp junk copyofjunk
$ ls -li total 3
15850 -rw-rw-rw- 1 you 2 Sep 27 13:13 copyofjunk
15768 -rw-rw-rw- 1 you 2 Sep 27 12:37 junk
15274 drwxrwxrwx 4 you 64 Sep 27 09:34 recipes
$
Индексы файлов junk
и copyofjunk
различны, поскольку это различные файлы, хотя в данный момент они имеют одинаковое содержимое. Существует полезный прием: можно изменить права доступа к копии файла, чтобы ее труднее было случайно удалить.
$ chmod -w copyofjunk
Убрать право записи
$ ls -li total 3
15850 -r--r--r-- 1 you 2 Sep 27 13:13 copyofjunk
15768 -rw-rw-rw- 1 you 2 Sep 27 12:37 junk
15274 drwxrwxrwx 4 you 64 Sep 27 09:34 recipes
$ rm copyofjunk
rm: copyofjunk 444 mode n
Нельзя! Он нужен
$ date > junk
$ ls -li total 3
15850 -r--r--r-- 1 you 2 Sep 27 13:13 copyofjunk
15768 -rw-rw-rw- 1 you 29 Sep 27 13:16 junk
15274 drwxrwxrwx 4 you 64 Sep 27 09:34 recipes
$ rm copyofjunk
rm: copyofjunk 444 mode y
А может быть, и не так нужен
$ ls -li total 2
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии