Чорт візьми, да. Якщо Ви виконуєте команду, ln -s
Ви створюєте символічне посилання, яке є inode, що вказує на певний об'єкт файлової системи, тому символьні посилання можуть перетинати файлові системи, а жорсткі посилання не можуть: жорсткі посилання не мають власного inode.
Якщо ви монтуєте файлову систему за допомогою --bind
, ви створюєте другу точку кріплення для пристрою або файлової системи.
Якщо ви передбачаєте символьне посилання як переспрямування, то передбачте --bind
змонтовану файлову систему як створення іншого шлюзу для даних.
Символьні посилання та кріплення кріплення - це зовсім інша бальна гра.
--bind
Кріплення здається трохи більш надійним для мене , і це , ймовірно, трохи швидше , ніж роботи з лінком. З іншого боку, немає серйозних недоліків у використанні символьної посилання, оскільки показник ефективності буде невеликим (якщо він взагалі існує).
Редагувати : Я думав про це, і хіт на продуктивність може бути трохи більшим, ніж я спочатку думав. Якщо у вас є програма, яка читає багато різних файлів, то кожен новий відкритий файл потребує додаткового читання. Деякі дослідження тут говорять про те, що моє припущення є правильним, тому якщо у вас запущений важкий додаток IO, розгляньте --bind
можливість встановити над рішенням symlink.
Причина, по якій не прийнято, ймовірно , той факт , що символічна видно в ls
, в той час як прив'язка змонтованого видно тільки при погляді на / Proc / монтує або / і т.д. / mtab (який є те , що команда монтування робить, якщо виконується без параметрів). Крім цього, я не думаю, що проблем є. Мені було б цікаво, якщо вони є.
Додавання : ще одна проблема ln -s
, що стосується деяких програм, коли шлях буде відмежовано, він може спричинити непридатність програми, якщо "очікує", що певні елементи будуть у певних місцях.