У жестких ссылок есть два существенных ограничения:
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]$Пример 4.14. Создание символьных ссылок
Теперь Иван решил создать в своем домашнем каталоге символьную ссылку на файл 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Пример 4.15. Раскрытие символьных ссылок
| Индексные дескрипторы | Удаление файлов и каталогов |