Unix: мягкие ссылки, жесткие ссылки

581
sixtyfootersdude

Я несколько сбит с толку, каковы различия между softlink и hardlink (на Unix).

Кажется, что мягкая ссылка - это то же самое, что ярлык в Windows или псевдоним в Mac OS X. (Может кто-нибудь это подтвердить?) Мягкие ссылки могут ссылаться как на каталоги, так и на файлы.

Я не уверен, что делает Hardlink или если это полезно ..

Лучше использовать один вместо другого?

Благодарю.

4
Это, возможно, было сделано раньше для Суперпользователя, я знаю, что это произошло при Отказе Сервера: http://serverfault.com/questions/10543/what-is-the-difference-between-a-soft-symbolic-link-and- хард-линк. Кстати, псевдоним Mac OS - более сложный зверь, чем символическая ссылка, которая довольно проста. Я не знаю насчет окон. dmckee 14 лет назад 1

1 ответ на вопрос

4
Sunny

Жесткие ссылки могут работать только в одной файловой системе. Это в основном разные имена для одной и той же группы данных (файла). Т.е., если вы создаете жесткую ссылку на файл, а затем удаляете исходный файл, ссылка будет продолжать существовать, и данные будут доступны через жесткую ссылку. Дисковое пространство освобождается при удалении последней жесткой ссылки. На самом деле, нет никакой разницы между исходным файлом и жесткой ссылкой, которую вы создали позже. Они взаимозаменяемы. После создания жесткой ссылки больше нет «оригинала» и «ссылки».

Мягкие ссылки могут использоваться между различными файловыми системами, т.е. в файловой системе2 может быть создана ссылка для ссылки на файл / каталог в файловой системе1. Кроме того, если вы удалите оригинал, ссылка станет неработоспособной, поскольку она указывает на неопределенное местоположение.

Да, вы можете думать о мягких ссылках как о «ярлыках» в окнах, но они не совсем одинаковы. Ярлык в Windows - это файл сам по себе, и если программа не может их интерпретировать, она не может их использовать.

Вот красиво оформленная статья по теме :)

Отличный ответ! Спасибо за ссылки. Картина особенно полезна. sixtyfootersdude 14 лет назад 0
Мягкие ссылки в Unix-подобных системах также являются независимыми файлами (они занимают inode, они могут быть жестко связаны друг с другом и т. Д.) И также требуют взаимодействия (хотя ОС предоставляет API для этого). dmckee 14 лет назад 0
dmckee: Символьные ссылки * интерпретируются ОС, когда вы открываете или `stat ()` их. grawity 14 лет назад 0