Недавно я узнал о команде mount --bind
, но есть кое-что, что я могу ' Я ясно понимаю. Предположим, у меня есть раздел на диске, и я смонтировал его в точку монтирования / bkup с помощью этой команды.
sudo mount /dev/sdd1 /bkup
Если я хочу, чтобы каталог / home / bkup отображался как ~ / bkup, я мог бы сделать
sudo mount --bind /bkup ~/bkup
Но чем он отличается от
ln -s /bkup ~/bkup
в действительности? Почему я должен использовать mount --bind
, если я могу сделать то же самое с командой ln -s
?
mount --bind
больше похож на эквивалент «жесткой ссылки» на каталог (ну, вы не можете создавать жесткие ссылки на каталоги, но это ближе всего, что вы можете получить), в то время как символическая ссылка ... ну, символическая ссылка.
Сам я обнаружил два случая, когда разница может быть важной:
запуск какого-то сервиса в chroot. Символические ссылки из тюрьмы chroot за пределы тюрьмы chroot не работают, в то время как mount --bind
работает.
Совместное использование некоторого каталога по сети. Вы не можете поделиться символьной ссылкой, но вы можете поделиться каталогом, смонтированным через mount --bind
.
Вы также должны быть очень осторожны с программами, которые по замыслу различают символические ссылки и фактические каталоги, такие как rsync
. Попытка запустить rsync
по символьной ссылке на каталог может дать вам совершенно другие результаты, чем вы ожидаете.