Управление диском

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

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

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

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

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

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

коснитесь LinuxHintFile
rmkdir 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.

Как показать счетчик FPS в играх для Linux
Игры для Linux получили серьезный толчок, когда Valve объявила о поддержке Linux для клиента Steam и своих игр в 2012 году. С тех пор многие игры AAA ...
Как загрузить и играть в Sid Meier's Civilization VI в Linux
Введение в игру Civilization 6 - это современный подход к классической концепции, представленной в серии игр Age of Empires. Идея была довольно просто...
Как установить Doom и играть в него в Linux
Введение в Doom Серия Doom возникла в 90-х годах после выхода оригинальной Doom. Это мгновенно стал хитом, и с тех пор серия игр получила множество на...