我使用过的Linux命令之pwd - 显示当前工作目录

学峰的学习笔记 2010-11-02

我使用过的Linux命令之pwd - 显示当前工作目录

用途说明

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@webinit.d]#pwd

/etc/init.d

[root@webinit.d]#echo$OLDPWD

/root

[root@webinit.d]#echo$PWD

/etc/init.d

[root@webinit.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~]$cdwork

[web@hnweb1work]$pwd

/home/web/work

[web@hnweb1work]$echo$OLDPWD

/home/web

[web@hnweb1work]$echo$PWD

/home/web/work

[web@hnweb1 work]$

示例三 如果目录是个符号链接

[root@web ~]# cd /var/mail

[root@webmail]#pwd

/var/mail

[root@webmail]#pwd-P

/var/spool/mail

[root@webmail]#pwd-L

/var/mail

[root@webmail]#ls-l/var/mail

lrwxrwxrwx1rootroot1006-2817:21/var/mail->spool/mail

[root@web mail]#

示例四 在bash脚本中取当前目录,上级目录

# 当前目录保存到变量D中
D=$(pwd)

# 根据当前目录得到上级目录
P=$(dirname $D)

# 打印当前目录和上级目录
echo D=$D P=$P
 

[root@web setup]# D=$(pwd) 

[root@websetup]#P=$(dirname$D)

[root@websetup]#echoD=$DP=$P

D=/root/setupP=/root

[root@web setup]#

示例五 你所不知道的pwd

[root@web init.d]# type -a pwd

pwdisashellbuiltin

pwdis/bin/pwd

[root@webinit.d]#/bin/pwd

/etc/rc.d/init.d

[root@webinit.d]#/bin/pwd--help

用法:/bin/pwd[选项]

打印当前工作目录的完整文件名。

--help显示此帮助信息并退出

--version输出版本信息并退出

NOTE:yourshellmayhaveitsownversionofpwd,whichusuallysupersedes

theversiondescribedhere.Pleaserefertoyourshell'sdocumentation

fordetailsabouttheoptionsitsupports.

请向<bug-coreutils@gnu.org>报告错误。

[root@webinit.d]#/bin/pwd-P

/bin/pwd:无效选项--P

请尝试执行“/bin/pwd--help”来获取更多信息。

[root@webinit.d]#/bin/pwd-L

/bin/pwd:无效选项--L

请尝试执行“/bin/pwd--help”来获取更多信息。

[root@webinit.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~]#cdremoved

[root@webremoved]#pwd

/root/removed

[root@webremoved]#rm../removed-rf

[root@webremoved]#pwd

/root/removed

[root@webremoved]#/bin/pwd

/bin/pwd:couldn'tfinddirectoryentryin“..”withmatchingi-node

[root@webremoved]#cd

[root@web ~]#

问题思考

相关资料

【1】青柠檬 Linux pwd 命令-Linux教程

【2】菜鸟网管集中营 linux显示当前所在的目录(pwd)

【3】脚本学习 linux pwd: 显示工作目录

返回 我使用过的Linux命令系列总目录

相关推荐