Linux命令pwd(查询所在目录位置)

来源:互联网 发布:大数据时代风险 编辑:程序博客网 时间:2024/06/05 20:39

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脚本中取当前目录,上级目录

# 当前目录保存到变量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.

请向 <bug-coreutils@gnu.org> 报告错误。
[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 ~]#