Символическая ссылка Редактирование и различия с жесткой ссылкой

Я только что создал символическую ссылку на каталог, используя:

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 Вы можете делать все, что захотите, так же, как если бы вы были в реальном каталоге, потому что вы находитесь в реальном каталоге. Ваша оболочка, в зависимости от настроек конфигурации, позволит вам думать, что вы находитесь в именованном каталоге символической ссылки, но все функции операционной системы будут возвращать действительные имена каталогов.

Другие вопросы по тегам