Каковы преимущества символических ссылок по сравнению с жесткими ссылками и наоборот?

10

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

Хавьер
источник
2
См. Ответы на «Какая разница между символической ссылкой и жесткой ссылкой?» на StackOverflow: stackoverflow.com/questions/185899/…
pelms

Ответы:

10

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

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

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

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

dmckee --- котенок экс-модератора
источник
10

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

hurikhan77
источник
1

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

bobmcn
источник
0

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

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

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

Рональд Поттол
источник