我添加了一个符号链接到当前目录ln -s . aa。如果我执行cd aa,然后我执行pwd,响应是/home/sim/aa。
但是如果我执行/bin/pwd它会打印/home/sim(当前目录没有改变)。
这种差异从何而来?
主要是因为pwd不是内置的,而.内置于 bash shell 吗?
例如,它们在以下示例中有所不同:
/tmp/ttt$ mv ../ttt ../tttt
/tmp/ttt$ pwd
/tmp/ttt
/tmp/ttt$ cd .
/tmp/tttt$
Run Code Online (Sandbox Code Playgroud) 对 /home/user/ 目录中的下一个简单文件结构进行映像:
/home/user
|--dir0
|--dir1
|--file1
Run Code Online (Sandbox Code Playgroud)
我当前的目录是“dir1”,我使用以下命令从内部删除目录:
rm -r ../dir1
Run Code Online (Sandbox Code Playgroud)
之后(并且在终端上没有出现任何错误),工作目录仍然相同,并且在使用命令pwd 时,输出为:
user@ubuntu:~/dir0/dir1$ pwd
/home/user/dir0/dir1
user@ubuntu:~/dir0/dir1$
Run Code Online (Sandbox Code Playgroud)
如果已经从文件系统中删除了工作目录,为什么操作系统会返回工作目录是“dir1”?