当我们通过软链接 cd 进入目录时,我观察到:
ls ..
将显示链接目录的父目录的内容,而cd ..
将显示在软链接的父目录下。为什么它们不同?cd ..
后面跟着的选项卡不提供任何完成选项,既不提供链接目录的父目录的内容,也不提供软链接的父目录的内容。为什么会这样呢?在上述情况下,我们如何知道在所有目录命令中哪些适用于链接目录或其软链接?
答案1
因为 bash(可能还有其他 shell)会跟踪您下降的路径,包括符号链接,以便使您的回溯轨迹看起来像下降的轨迹。
Bash 知道你如何到达工作目录,因为cd
它必须是内置的 shell。当您运行ls ..
shell 时,无法替换“符号路径”,因为grep ..
它也是有效的,并且翻译..
会非常混乱。
事实上,shell 目前有两种解释,..
可以说这两种解释很令人困惑,就好像它根本没有试图提供帮助一样。