一、pwd命令:显示当前所在的工作目录

它的值是根据PWD变量得来的

[root@localhost ~]# pwd
/root
[root@localhost ~]# echo $PWD
/root

还有一个OLDPWD变量来记录上一个工作目录的路径

[root@localhost ~]# echo $OLDPWD
/testdir

当我们用cd - 时相当于不断的执行

cd "$OLDPWD"

[root@localhost testdir]# cd "$OLDPWD"
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd "$OLDPWD"
[root@localhost testdir]# pwd
/testdir

切换目录的实质是对PWD赋值,但这个切换并不是真正意义上的切换

[root@localhost ~]# PWD=/etc/init.d   #注意:在最后面不要加/,否则将切换到一个空目录
[root@localhost init.d]# ls
1lksfk           Desktop    Downloads  f3.txt                Music     Public     Videos
anaconda-ks.cfg  Documents  f2.txt     initial-setup-ks.cfg  Pictures  Templates
[root@localhost init.d]# pwd
/root
[root@localhost init.d]# ls /etc/init.d/
functions  netconsole  network  README

从上面可以看到,当对PWD赋值时,显示的工作目录将发生变化,但是实质上真正的目录仍然没有变。也就是说,PWD这个变量只是改变了显示的目录,真正的工作目录仍然是pwd这一个命令所显示的目录。

pwd命令的选项:

-L:pwd显示符号连接的路径,默认选项为-L

-P:如果当前工作目录在一个软连接目录下,pwd加-P选项将显示真实的文件路径

[root@localhost ~]# cd /bin
[root@localhost bin]# pwd
/bin
[root@localhost bin]# pwd -P
/usr/bin

cd切换工作目录:

-L :切换到目标目录,即使对象是软连接,默认选项

-P:如果对象是软连接,将切换到软连接指向的真实目录

[root@localhost ~]# cd /bin
[root@localhost bin]# pwd
/bin
[root@localhost bin]# cd -P /bin
[root@localhost bin]# pwd
/usr/bin