У жестких ссылок есть два существенных ограничения:
Cимвольная ссылка (symbolic link, файл-ссылка) — это файл особого типа (l
), в котором содержится путь к другому файлу. Если на пути к файлу встречается cимвольная ссылка, система выполняет подстановку: исходный путь заменяется тем, что содержится в ссылке.
Cимвольную ссылку можно создать при помощи команды ln
с ключом -s
(сокращение от ”symbolic”):
[ivan@localhost ivan]$ ln -s examples/text text-symlink
[ivan@localhost ivan]$ ls -li
. . .
127699 drwxr-xr-x 2 ivan ivan 4096 Окт 4 17:12 examples
127705 -rw-r--r-- 2 ivan ivan 653 Сен 30 10:04 text-hardlink
3621 lrwxrwxrwx 1 ivan ivan 13 Окт 4 18:05 text-symlink -> examples/text
[ivan@localhost ivan]$
Теперь Иван решил создать в своем домашнем каталоге символьную ссылку на файл text
и назвать ее text-symlink
. Команда ls -li
отобразила этот файл совсем не так, как остальные: стрелочка (”→”) указывает, куда направлена ссылка. Кроме того, Иван обратил внимание, что номер индексного дескриптора (первое поле), размер и время создания файла text-symlink
отличаются от text-hardlink
, а также во втором поле (количество жестких ссылок на файл) text-symlink
указано 1
. Все эти признаки недвусмысленно свидетельствуют о том, что text-symlink
и text
- это разные файлы. Однако если выполнить команду cat text-symlink
, то на экран будет выведено содержимое файла text
.
Символьная ссылка вполне может содержать имя несуществующего файла. В этом случае ссылка будет существовать, но не будет “работать”: например, если попробовать вывести содержимое такой “битой” ссылки при помощи команды cat
, будет выдано сообщение об ошибке.
Узнать, куда указывает символьная ссылка, можно при помощи утилиты realpath
:
[ivan@localhost ivan]$ realpath text-symlink
/home/ivan/examples/text
Индексные дескрипторы | Удаление файлов и каталогов |