符号 Link 对硬 link 的编辑和差异

Symbolic Link Edits and differences to hard link

我刚刚使用以下方法创建了指向目录的符号链接:

ln -s /path/to/real/ link

1 - 如果我然后 cd 进入 link/,我在那里所做的任何更改是否会反映在原始目录中?

2 - 此外,源目录是一个 git 存储库,所以我可以从符号链接目录执行 git 命令吗?

3 - 这些答案和任何关于 sym/hard 链接(或一般的 ln 之间的差异)的一般性解释都会动摇。

谢谢!

当您执行 cd link/ 时,您的当前目录变为 /path/to/real,您在该目录中所做的任何更改都在 'the real directory'.

注意 cd -Lcd -P — 请参阅 cd — and similarly with pwd 上的 POSIX。

符号 link 就像原始目录的另一个名称一样工作。它们与硬 links 不同,因为如果您将原始文件替换为同名的新文件,则符号 link 指向新文件。一个硬 link 仍然会被 linked 到原始文件,不管它有什么名字。

一个符号 link 可以 "dangle" 这意味着它的目标不再存在。很难link不能。

目录不能硬linked。过去是允许的,但它会造成目录循环的可能性,这是一件坏事。

是的,如果你 cd symlink 你可以做任何你想做的事,就好像你在实际目录中一样,因为你在实际目录中。根据其配置设置,您的 shell 会让您认为自己位于 symlink 命名目录中,但所有操作系统功能都会 return 实际目录名称。