Я прочитал несколько сообщений о символических ссылках и жестких ссылках, но я хотел бы подтвердить свою концепцию по этому поводу, поскольку существует определенное поведение, которое мне совершенно неясно. Рассмотрим эту последовательность команд командной строки.
$ echo abc >file1
$ ln file1 file2 OR $ ln -s file1 file2
$ rm file1
edit content file2 to be different, using vim
$ cat file1
Если я буду следовать этой последовательности инструкций для 2 случаев: 1, который создает жесткую ссылку, и одного, который создает символическую ссылку, я могу объяснить, почему file1 не будет существовать после последовательности, но не могу реально объяснить, почему file1 будет существовать после последовательность.
Следующая моя попытка.
Жесткий кейс:
to разыменовывается из file1. Следовательно, file1 больше не существует, но
индекс, с которым он связан, все еще существует, так как file2 все еще связан с
Это. Редактирование файла 2 изменит только его содержимое.
Чехол с мягкой связью:
файл1 удален, а индекс, с которым связан файл1,
разыменован. (file2 не ссылается на inode, а скорее на file1)
Следовательно, file1 больше не существует, и индекс, с которым он связан,
освобожден и может быть перезаписан, так как больше нет файлов
ссылаясь на него.
Редактирование файла 2 воссоздает файл1, так как файл2 по-прежнему символически
связан с file1, который затем будет ссылаться на новый индекс, который будет иметь
указатель на отредактированный файл content.file1 удален, а индекс, к которому подключен файл1
Я не совсем уверен, правильна ли логика создания индекса для символьных ссылок, может ли кто-нибудь подтвердить мое понимание?