Вы только что узнали, что такое жесткая ссылка, каковы ее свойства и варианты использования.
Давайте продолжим и поговорим о программных ссылках, также называемых символическими ссылками или символическими ссылками.
Они похожи на ярлыки в Windows и ведут себя иначе, чем жесткие ссылки.
Давайте посмотрим на эту картинку.
Если жесткая ссылка является ассоциацией между структурой индексного дескриптора и именем файла
в каталоге, символическая ссылка
- это просто специальный тип файла, который указывает на другой файл или каталог или содержит ссылку на него.
Таким образом, жесткая ссылка ссылается на индексный дескриптор файла, а символическая ссылка - на другой файл.
Если вы удалите жесткую ссылку, оставшиеся файлы будут указывать на то же пространство или индексный узел в файловой системе,
и они все равно будут содержать данные, хранящиеся на диске.
Но если вы удалите файл, символическая ссылка, указывающая на символическую ссылку, будет бесполезной или сломанной.
Для создания символической ссылки мы используем ту же команду, что и для создания жестких ссылок, то есть ln, но с параметром
-s. Я создаю символическую ссылку: ln-s существующий файл / etc / passwd и символическую ссылку
в текущем каталоге ./pswd.
Я только что создал символическую ссылку pswd на etc / password.
Посмотрите, как ls -l указывает, что pswd является символической ссылкой, а также отображает файл, на
который указывает.
Посмотрим еще один пример! Я создаю новый файл, используя перенаправление.
ps aux> process.txt
Кстати, ps aux отображает все запущенные процессы.
И вывод был перенаправлен в этот файл.
И я создаю как жесткую ссылку, так и символическую ссылку на только что созданный файл, поэтому ln -s
process.txt p.txt Это жесткая ссылка, а теперь символическая ссылка: ln
-scesses.txt и symlink_p.txt
Я running ls-li
Это исходный файл process.txt.
Это жесткая ссылка, у них такой же номер inode, этот номер.
А это еще один файл, символическая ссылка.
Я могу получить доступ к содержимому process.txt по символической ссылке. Если я перенесу файл process.txt в другой
каталог, p.txt, жесткая ссылка не будет затронута, но символическая ссылка будет нарушена.
Давай сделаем это.
мв
processes.txt
И каталог назначения, я переместить файл на рабочий стол.
И cat p.txt жесткую ссылку.
И он работает, нет проблем, ls -l показывает, что символическая ссылка не работает,
символическая ссылка ни на что не указывает, cat symlink_p.txt
Нет такого файла или каталога.
Символьные ссылки используются чаще, чем жесткие ссылки, и мы можем сказать, что многие службы, такие как веб-сервер Appache2, широко
используют символические ссылки в своей конфигурации.
Другие свойства символических ссылок: вы можете создать символическую ссылку на каталог.
ln -s / etc / etc_symlink
Я создал символическую ссылку на / etc в текущем каталоге.
Однако вы не можете создать жесткую ссылку на каталог.
Это будет ошибкой.
Символьная ссылка может пересекать файловую систему.
Однако жесткая ссылка находится локально в файловой системе или разделе
. Символьная ссылка имеет свою собственную структуру inode.
Посмотрите, чем отличается номер Inode файла и символическая ссылка.
Однако все жесткие ссылки имеют одинаковую структуру inode и номер inode. Символическая ссылка содержит только путь к исходному
файлу или каталогу, но не его содержимое.
Разрешения символических ссылок не имеют значения, потому что будут проверяться разрешения целевого файла.
Вы увидите, что символическая ссылка имеет все разрешения.
Найдите время, чтобы потренироваться и понять, как работают символические ссылки и как их создавать.
Они широко используются в реальных приложениях.