1
了解目录符号链接遍历和父目录
假设您有目录/dir1和/dir2/linked,其中目录是到目录的符号链接。 当您cd到达linkedand时pwd,您将获得输出/dir2/linked。如果这样的话cd ..,你会被戴上/dir2。此行为与您/dir2/linked之前的想法一致。但是,据我了解,..任何目录的父目录()都存储在目录inode中(即:物理上在磁盘中)。显然,既然/dir2/linked是true /dir1,那么inode上的父目录必须是/ 为了进一步使问题复杂化,而里面/dir2/linked的输出ls ..和cd .. ; ls .是不同的!似乎是在cd尊敬符号链接的路径,而在ls尊敬“物理”路径。就像这个问题中提到的那样,这里cd -P有用例。 man pwd 提到了“物理”和“逻辑”工作目录,但目前我仍然有几个问题: PWD如所述,此行为是否总是由环境变量提供的man pwd? 如果它们都是shell命令(即不是程序),为什么要默认cd并ls具有不同的行为? 是否使用典型程序(而非shell命令)PWD代替物理路径?我知道这取决于实现,但是有经验法则吗?