Мягкая (символическая) ссылка против жесткой ссылки

Soft Link Vs Hard Link



Символические ссылки (также называемые программными ссылками) и жесткие ссылки - это ресурсы для доступа к файлам или каталогам из любого места. В этой статье будут описаны различия между символическими и жесткими ссылками.

Жесткие ссылки

Жесткие ссылки - это не файл, содержащий путь к исходному файлу, а зеркальные копии исходного файла, на которые они указывают. Файл и его жесткие ссылки связаны не по имени или пути, а по индексу, который хранит информацию о файле, такую ​​как его местоположение, дату создания, разрешения и другие атрибуты. Каждый номер inode уникален в пределах файловой системы, что предотвращает работу жестких ссылок между различными разделами или системами. Жесткие ссылки нельзя использовать для связывания каталогов.







В отличие от программных ссылок жесткие ссылки содержат информацию, на которую они ссылаются, поэтому, если исходный файл будет удален, вы все равно сможете получить доступ к его данным.



Во всех системах Linux как жесткие, так и символические ссылки создаются с помощью команды пер . Для начала создайте файл с именем LinuxHintFile и каталог с именем LinuxHintDirectory как показано на изображении ниже:



трогатьLinuxHintFile
rmkdir LinuxHintDirectory
ls
корень@Linux Подсказка:/дом/linuxhint#





Чтобы создать жесткую ссылку Link2LHFile на файл LinuxHintFile, запустите в терминале:

перLinuxHintFile Ссылка2LHFile



После проверки с ls мы видим жесткую ссылку, которую мы только что создали, если вы наберете ls -i, вы увидите inodes файлов, вы можете подтвердить, что ссылка, которую мы только что создали, имеет тот же номер inode, что и исходный файл, введите:

ls

Как мы уже говорили выше, мы не можем использовать жесткие ссылки для каталогов или ссылки на другие тома или файловые системы, мы свяжем LinuxHintDirectory с помощью программной ссылки.

Вы можете найти жесткие ссылки в рабочем каталоге, запустив:

найти -типж-ссылки+1

Вы также можете найти файлы по индексам, для этого запуска:

найти.-inum <InodeNumber>

Как видите, и исходный файл, и жесткая ссылка имеют один и тот же номер inode.

Мягкие ссылки

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

Также, в отличие от жестких ссылок, символьные ссылки не используют один и тот же индексный дескриптор с исходным файлом, поэтому символьная ссылка может пересекать тома и файловые системы, а жесткие ссылки - нет. Символьные ссылки могут использоваться для связывания каталогов, в то время как с жесткими ссылками это невозможно.

Символические ссылки также создаются с помощью программы. пер , но чтобы ссылка была символьной / мягкой, нужно указать параметр -s , чтобы создать символическую ссылку на каталог LinuxHintDirectory под названием LHDLink run:

пер -sLinuxHintDirectory LHDLink

А затем запустите ' ls -i ’, Чтобы убедиться, что он был правильно создан:

Как мы видим, в этом случае символическая ссылка была создана, но у нее другой номер inode, чем у исходного файла.

Мы можем перечислить символические ссылки в каталоге с помощью команды ls -l

На изображении выше мы видим в разрешениях первого файла префикс в для символических ссылок конец строки также показывает, на какой файл указывает символическая ссылка.

Надеюсь, вы нашли эту статью полезной для понимания различий между жесткими и символическими ссылками и способов их создания. Следите за LinuxHint, чтобы получать больше советов и обновлений по Linux.