Использование символических ссылок

Символические ссылки — это особый вид файлов, представляющий со- бой указатели на другие файлы. Символические ссылки создают командой ln -s, где первый аргумент — имя уже существующего файла, а второй аргумент — либо имя символической ссылки, либо каталога, где будет об- разован файл символической ссылки с таким же именем, что и исходный файл (пример 4.32).

 

Пример 4.32. Создание символической ссылки на файл

 

$ ln -s file1 slink1  
$ ls -li file1 slink1
4639 -rw-rw-r-- 1 user1 users 0 Dec 11 15:55 file1
1604 lrwxrwxrwx 1 user1 users 5 Dec 16 01:37 slink1 ->

file1

$ echo 123 > file1

$ cat slink1 123

 

В примере 4.32 на файл file1 создана символическая ссылка slink1. Метадан- ные у file1 и slink1 различаются, поскольку это совершенно разные файлы. Тем не менее, к файлу можно обращаться с помощью ссылки.

Можно создавать ссылки на каталоги (пример 4.33).


 

Пример 4.33. Создание символической ссылки на каталог

 

$ ln -s ~/dir1 /tmp

$ ls -ldi dir1 /tmp/dir1

4635 drwxr-xr-x 2 user1 users 144 Dec 16 00:26 dir1

163286 lrwxrwxrwx 1 user1 users 16 Dec 16 01:12 /tmp/dir1 ->

/home/user1/dir1

 

В этом примере создается символическая ссылка на каталог dir1 в каталоге

/tmp. Заметно, что символическая ссылка имеет совершенно иной тип файла и номер inode, она не ограничена одной файловой системой. Обратите также внимание, что, во-первых, символические ссылки можно устанавливать на каталоги, а, во-вторых, при создании символической ссылки в другом катало- ге следует указывать полное имя исходного файла. Если второе требование не выполняется, то:

r либо ссылка будет оборванной (или иначе — висящей), т. е. символиче- ская ссылка будет указывать на несуществующий файл;

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

Символическая ссылка может оказаться оборванной (пример 4.34) в случае, если:

r файл, на который она указывает, перемещен, переименован или удален;

r нет достаточных прав доступа на файл, указываемый символической ссылкой;

r файл находится в файловой системе, которая сейчас не смонтирована.

 

Пример 4.34. Оборванная символическая ссылка

 

$ mv file1 file11

$ cat slink1

cat: slink1: No such file or directory

 

 

После переименования файла file1 в file11 ссылка slink1 стала оборванной.

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


 

Пример 4.35. Создание ссылки на файл устройства

 

$ ln -s /dev/fd0 .

$ ls -l fd0

lrwxrwxrwx 1 user1 users 8 Dec 16 01:13 fd0 -> /dev/fd0

 

Длина файла символической ссылки равна длине имени файла, на который она указывает.

Команда cp обладает специальной опцией -s, которая позволяет вместо ко- пирования файлов создавать на них символические ссылки (пример 4.36).

 

Пример 4.36. Опция -s команды cp

 

$ cp -s ~/f??? /tmp

$ ls -l /tmp/f???

lrwxrwxrwx 1 user1 users 16 Dec 16 01:52 /tmp/f112 -> /home/user1/f112

lrwxrwxrwx 1 user1 users 16 Dec 16 01:52 /tmp/f113 -> /home/user1/f113

lrwxrwxrwx 1 user1 users 16 Dec 16 01:52 /tmp/f117 -> /home/user1/f117

lrwxrwxrwx 1 user1 users 16 Dec 16 01:52 /tmp/f122 -> /home/user1/f122

 

В примере 4.36 на группу файлов были созданы символические ссылки в ка- талоге /tmp.

Если используется команда cp, для которой в качестве аргумента указаны файлы символических ссылок, то будут скопированы не файлы символиче- ских ссылок, а файлы, на которые они указывают. Если же необходимо ско- пировать не исходные файлы, а именно символические ссылки, то следует использовать опцию -d команды cp (пример 4.37).

 

Пример 4.37. Копирование символических ссылок

 

$ cp -d /tmp/f122 Documents/

$ ls -l Documents/f122

lrwxrwxrwx 1 user1 users 16 Dec 16 02:00 Documents/f122 ->

/home/user1/f122








Дата добавления: 2015-06-12; просмотров: 936;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.