Символическая ссылка Редактирование и различия с жесткой ссылкой
Я только что создал символическую ссылку на каталог, используя:
ln -s /path/to/real/ link
1 - если я тогда cd
в link/
Будут ли какие-либо изменения, внесенные мной, отражены в исходном каталоге?
2 - Кроме того, исходный каталог - это git-репозиторий, поэтому я могу выполнять команды git из каталога symlink?
3 - Эти ответы и любое общее объяснение различий между символическими / жесткими ссылками (или ln
в общем) качался бы.
Спасибо!
2 ответа
Когда вы делаете cd link/
, ваш текущий каталог становится /path/to/real
и любые изменения, которые вы делаете в каталоге, находятся в "реальном каталоге".
Остерегаться cd -L
против cd -P
- см. POSIX на cd
- и аналогично с pwd
,
Символические ссылки работают так же, как и другое имя исходного каталога. Они отличаются от жестких ссылок, потому что если вы замените исходный файл новым с тем же именем, символическая ссылка будет указывать на новый файл. Жесткая ссылка все равно будет связана с исходным файлом, независимо от того, какое у него имя.
Символическая ссылка может "болтаться", что означает, что ее цель больше не существует. Жесткая ссылка не может.
Каталог не может быть жестко связан. В прошлом это было разрешено, но создавало возможность зацикливания каталогов, и это плохо.
Да если ты cd symlink
Вы можете делать все, что захотите, так же, как если бы вы были в реальном каталоге, потому что вы находитесь в реальном каталоге. Ваша оболочка, в зависимости от настроек конфигурации, позволит вам думать, что вы находитесь в именованном каталоге символической ссылки, но все функции операционной системы будут возвращать действительные имена каталогов.