用途说明
pwd命令用于显示当前工作目录,是Linux下最常用的命令之一。在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置。环境变量OLDPWD表示前一次的工作目录,环境变量PWD表示当前的工作目录。 常用参数
一般情况下不带任何参数。
格式:pwd
如果目录是链接时。
格式:pwd -P 显示出实际路径,而非使用连接(link)路径。 使用示例 示例一 root用户
Last login: Tue Nov 2 19:15:53 2010 from 222.70.145.185
[root@web ~]# pwd
/root
[root@web ~]# echo $OLDPWD
[root@web ~]# echo $PWD
/root
[root@web ~]# cd /etc/init.d
[root@web init.d]# pwd
/etc/init.d
[root@web init.d]# echo $OLDPWD
/root
[root@web init.d]# echo $PWD
/etc/init.d
[root@web init.d]# 示例二 普通用户
Last login: Fri Oct 29 16:18:50 2010 from hnas1
[web@hnweb1 ~]$ pwd
/home/web
[web@hnweb1 ~]$ echo $OLDPWD
[web@hnweb1 ~]$ echo $PWD
/home/web
[web@hnweb1 ~]$ cd work
[web@hnweb1 work]$ pwd
/home/web/work
[web@hnweb1 work]$ echo $OLDPWD
/home/web
[web@hnweb1 work]$ echo $PWD
/home/web/work
[web@hnweb1 work]$ 示例三 如果目录是个符号链接
[root@web ~]# cd /var/mail
[root@web mail]# pwd
/var/mail
[root@web mail]# pwd -P
/var/spool/mail
[root@web mail]# pwd -L
/var/mail
[root@web mail]# ls -l /var/mail
lrwxrwxrwx 1 root root 10 06-28 17:21 /var/mail -> spool/mail
[root@web mail]# 示例四 在bash脚本中取当前目录,上级目录
Bash代码 # 当前目录保存到变量D中
D=$(pwd)
# 根据当前目录得到上级目录
P=$(dirname $D)
# 打印当前目录和上级目录
echo D=$D P=$P # 当前目录保存到变量D中
D=$(pwd)
# 根据当前目录得到上级目录
P=$(dirname $D)
# 打印当前目录和上级目录
echo D=$D P=$P
[root@web setup]# D=$(pwd)
[root@web setup]# P=$(dirname $D)
[root@web setup]# echo D=$D P=$P
D=/root/setup P=/root
[root@web setup]#
示例五 你所不知道的pwd
[root@web init.d]# type -a pwd
pwd is a shell builtin
pwd is /bin/pwd
[root@web init.d]# /bin/pwd
/etc/rc.d/init.d
[root@web init.d]# /bin/pwd --help
用法:/bin/pwd [选项]
打印当前工作目录的完整文件名。
--help 显示此帮助信息并退出
--version 输出版本信息并退出
NOTE: your shell may have its own version of pwd, which usually supersedes
the version described here. Please refer to your shell's documentation
for details about the options it supports.
请向 报告错误。
[root@web init.d]# /bin/pwd -P
/bin/pwd:无效选项 -- P
请尝试执行“/bin/pwd --help”来获取更多信息。
[root@web init.d]# /bin/pwd -L
/bin/pwd:无效选项 -- L
请尝试执行“/bin/pwd --help”来获取更多信息。
[root@web init.d]# cd //
[root@web //]# pwd
//
[root@web //]# /bin/pwd
/
[root@web //]# cd
[root@web ~]# pwd
/root
[root@web ~]#
经过上面的演示,内建命令pwd和外部命令/bin/pwd还是有区别的,在显示当前目录时,/bin/pwd显示得更准确些,而pwd容易被操作者糊弄。
示例六 当前目录被删除了
在多人共享同一台Linux机器时,经常会发现当前目录被别人删除掉,而pwd命令仍然显示那个目录。下面演示了这种情况。
[root@web ~]# mkdir removed
[root@web ~]# cd removed
[root@web removed]# pwd
/root/removed
[root@web removed]# rm ../removed -rf
[root@web removed]# pwd
/root/removed
[root@web removed]# /bin/pwd
/bin/pwd: couldn't find directory entry in “..” with matching i-node
[root@web removed]# cd
[root@web ~]#