10

Я понимаю разницу между символическими и жесткими ссылками, но я никогда не понимал, почему выбирают одно или другое.

4 ответа4

9

Рональд говорит, что жесткая ссылка может иметь разные разрешения в двух местах. Это неправильно. Оба места имеют один и тот же индекс. Права доступа связаны с индексом, а не с именем файла. Таким образом, жесткие ссылки в двух местах имеют одинаковые разрешения, время доступа, ...

8

Это было обсуждено более подробно на ServerFault.

Жесткая ссылка традиционно использует те же структуры файловой системы (inode в unixspeak), в то время как мягкая ссылка является перенаправлением пути.

  • Жесткие ссылки должны быть в одной файловой системе, программные ссылки могут пересекать файловые системы.
  • Файлы с жесткими ссылками остаются связанными, даже если вы переместите один из них (если только вы не переместите один в другую файловую систему, запускающую механизм копирования и удаления). Файлы с мягкими связями ломаются, если вы перемещаете цель (оригинал), а иногда и при перемещении ссылки (Использовали ли вы абсолютный или относительный путь? Это все еще в силе?).
  • Файлы с жесткими ссылками совпадают, в то время как оригинал является специальным в программных ссылках, а удаление оригинала удаляет данные. Данные не исчезают, пока все жесткие ссылки не будут удалены.
  • Мягкие ссылки могут указывать на любую цель, но большинство ОС / файловых систем запрещают жесткие ссылки на каталоги, чтобы предотвратить циклы в графе файловой системы (за исключением записей . И .. каталогах unix, которые являются жесткими ссылками).
  • Мягкие ссылки могут требовать специальной поддержки от инструментов обхода файловой системы. Читайте на readlink (2).

(Некоторые детали вспомнили mat1t. Спасибо.)

1

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

0

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

Мягкая ссылка - это просто указатель на реальную вещь.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .