Жесткие ссылки
Жесткие ссылки - это не файл, содержащий путь к исходному файлу, а зеркальные копии исходного файла, на которые они указывают. Файл и его жесткие ссылки связаны не по имени или пути, а по inode, который хранит информацию о файле, такую как его местоположение, дату создания, разрешения и другие атрибуты. Каждый номер inode уникален в пределах файловой системы, что предотвращает работу жестких ссылок между разными разделами или системами. Жесткие ссылки не могут использоваться для связывания каталогов.
В отличие от программных ссылок, жесткие ссылки содержат информацию, на которую они ссылаются, поэтому, если исходный файл будет удален, вы все равно сможете получить доступ к его данным.
Во всех системах Linux как жесткие, так и символические ссылки создаются с помощью команды «пер”. Для начала создайте файл с именем LinuxHintFile и каталог с именем LinuxHintDirectory как показано на изображении ниже:
коснитесь LinuxHintFilermkdir LinuxHintDirectory
ls
корень @ LinuxHint: / home / linuxhint #
Чтобы создать жесткую ссылку Link2LHFile на файл LinuxHintFile, запустите в терминале:
ln LinuxHintFile Link2LHFile
После проверки с ls мы видим жесткую ссылку, которую мы только что создали, если вы наберете ls -i, вы увидите inodes файлов, вы можете подтвердить, что ссылка, которую мы только что создали, имеет тот же номер inode, что и исходный файл, введите:
ls -i
Как мы уже говорили выше, мы не можем использовать жесткие ссылки для каталогов или ссылки на другие тома или файловые системы, мы свяжем LinuxHintDirectory с помощью мягкой ссылки.
Вы можете найти жесткие ссылки в рабочем каталоге, запустив:
find -type f -links +1
Вы также можете найти файлы по индексам, для этого запуска:
найти . -инум
Как вы видите, он обнаружил, что и исходный файл, и жесткая ссылка имеют один и тот же номер inode.
Мягкие ссылки
В отличие от жестких ссылок, мягкие ссылки не являются копиями исходного файла, они содержат путь к исходному файлу, из-за этого, если исходный файл будет удален, мягкая ссылка или символическая ссылка не будут указывать на то, что ни один файл не станет неработающей ссылкой, или потерянная ссылка, что означает, что если вы потеряете исходный файл, если вы удалите или переместите его, символическая ссылка потеряет доступ к информации, в то время как с жесткой ссылкой информация останется, несмотря на удаление исходного файла, потому что это полный и точный копия этого файла.
Также, в отличие от жестких ссылок, символьные ссылки не используют один и тот же индексный дескриптор с исходным файлом, поэтому символьная ссылка может пересекать тома и файловые системы, а жесткие ссылки - нет. Символические ссылки могут использоваться для связывания каталогов, в то время как с жесткими ссылками это невозможно.
Символические ссылки также создаются с помощью программы пер, но чтобы ссылка была символьной / мягкой, нам нужно указать параметр -s, чтобы создать символическую ссылку на каталог LinuxHintDirectory с именем LHDLink, выполните:
ln -s LinuxHintDirectory LHDLinkА потом беги 'ls -i'чтобы убедиться, что он был правильно создан:
Как мы видим в этом случае, символическая ссылка была создана, но у нее другой номер inode, чем у исходного файла.
Мы можем перечислить символические ссылки в каталоге с помощью команды «ls -l”
На изображении выше мы видим в разрешениях первого файла префикс «л”Для символических ссылок конец строки также показывает, на какой файл указывает символическая ссылка.
Надеюсь, вы нашли эту статью полезной для понимания различий между жесткими ссылками и символическими ссылками и того, как их создавать. Следите за LinuxHint для получения дополнительных советов и обновлений по Linux.