---
author: Avishek Kumar
category: 技术
comments_data:
- date: '2014-12-02 21:40:48'
  message: mark
  postip: 119.90.45.233
  username: Nutall
- date: '2014-12-02 22:03:02'
  message: Repost
  postip: 66.249.79.110
  username: 微博评论
- date: '2014-12-02 23:03:02'
  message: '@取神马名字啊啊啊 linux坑深似海[哈哈]'
  postip: 157.55.39.255
  username: 微博评论
- date: '2014-12-02 23:33:01'
  message: 菜鸟学习一记。
  postip: 27.159.202.57
  username: 微博评论
- date: '2014-12-03 00:03:04'
  message: '//@LR机器学习计算机视觉: 转发微博'
  postip: 220.200.4.210
  username: 微博评论
- date: '2014-12-03 01:03:01'
  message: Repost
  postip: 183.60.52.11
  username: 微博评论
- date: '2014-12-03 11:37:01'
  message: 介绍的好详细
  postip: 221.2.154.18
  username: 绿色圣光
- date: '2014-12-03 12:33:01'
  message: '@我的印象笔记'
  postip: 221.226.117.140
  username: 微博评论
- date: '2014-12-03 15:39:42'
  message: 详细的让人生厌。。。
  postip: 106.120.101.58
  username: linux
- date: '2014-12-06 00:27:09'
  message: 详细的太多了。我就知道pwd ,不知道还有—L，-P ，--version等参数。
  postip: 59.175.200.28
  username: wishpeeer
- date: '2019-07-03 13:34:23'
  message: PS1和后面的部分完全是画蛇添足
  postip: 61.167.60.242
  username: lyzenghq [Chrome 73.0|GNU/Linux]
count:
  commentnum: 11
  favtimes: 6
  likes: 0
  sharetimes: 19
  viewnum: 27688
date: '2014-12-02 21:02:00'
editorchoice: false
excerpt: '对于那些使用Linux命令行的人来说，pwd命令是非常有用的，它告诉你你现在在那个目录，从根目录(/)如何到达。特别是对于或许会在目录的切换间容易糊涂的Linux新手而言，pwd
  可以拯救他们。   什么是pwd? pwd 代表的是Print Working Directory（打印当前目录）。如它的名字那样，pwd会打印出当前工作目录，或简单的来说就是当前用户所位于的目录。它会打印出以根目录
  (/)为起点的完整目录名（绝对目录）。这条命令是一条shell内建命令，并且在大多数shell中都可以使用，如bash、Bourne shell，ksh、zsh等等。
  pwd的基本语法: # pwd   pwd的'
fromurl: http://www.tecmint.com/pwd-command-examples/
id: 4356
islctt: true
largepic: /images/p/201412/02/150914ah9h6mai6ta9ymin.png
permalink: /article-4356-1.html
pic: /images/p/201412/02/150914ah9h6mai6ta9ymin.png.thumb.jpg
related: []
reviewer: ''
selector: ''
summary: '对于那些使用Linux命令行的人来说，pwd命令是非常有用的，它告诉你你现在在那个目录，从根目录(/)如何到达。特别是对于或许会在目录的切换间容易糊涂的Linux新手而言，pwd
  可以拯救他们。   什么是pwd? pwd 代表的是Print Working Directory（打印当前目录）。如它的名字那样，pwd会打印出当前工作目录，或简单的来说就是当前用户所位于的目录。它会打印出以根目录
  (/)为起点的完整目录名（绝对目录）。这条命令是一条shell内建命令，并且在大多数shell中都可以使用，如bash、Bourne shell，ksh、zsh等等。
  pwd的基本语法: # pwd   pwd的'
tags:
- pwd
- 命令
thumb: false
title: 菜鸟教程：全面学习 pwd 命令
titlepic: false
translator: geekpi
updated: '2014-12-02 21:02:00'
---

对于那些使用Linux命令行的人来说，‘**pwd**‘命令是非常有用的，它告诉你你现在在那个目录，从根目录(**/**)如何到达。特别是对于或许会在目录的切换间容易糊涂的Linux新手而言，‘**pwd**‘ 可以拯救他们。


![15 pwd Command Examples](/images/p/201412/02/150914ah9h6mai6ta9ymin.png)


 


### 什么是pwd?


‘**pwd**‘ 代表的是‘**Print Working Directory**’（打印当前目录）。如它的名字那样，‘**pwd**’会打印出当前工作目录，或简单的来说就是当前用户所位于的目录。它会打印出以根目录 (**/**)为起点的完整目录名（绝对目录）。这条命令是一条shell内建命令，并且在大多数shell中都可以使用，如bash、Bourne shell，ksh、zsh等等。


#### pwd的基本语法:



```
# pwd [OPTION]

```

#### pwd的选项




 |  **选项** |  **描述** |
|  -L (即逻辑路径logical ) |  使用环境中的路径，即使包含了符号链接 |
|  -P (即物理路径physical) |  避免所有的符号链接 |
|  –help  |  显示帮助并退出 |
|  –version |  输出版本信息并退出 |


如果同时使用了‘**-L**‘和‘**-P**‘，‘**-L**‘会有更高的优先级。如果没有指定参数，pwd会避开所有的软链接，也就是说会使用‘**-P**‘参数。


pwd的退出状态:




 | 0 | 成功 |
| 非零值 | 失败 |


本篇的目的是采用例子让你对‘**pwd**‘有更深入的领悟。


**1.** 打印当前工作目录.



```
avi@tecmint:~$ /bin/pwd
/home/avi

```

![Print Working Directory](/images/p/201412/02/150919xifvyfb70cfbcf2k.gif)


*打印工作目录*


**2.** 为文件夹创建一个符号链接（比如说在home目录下创建一个**htm**链接指向**/var/www/html**）。进入新创建的目录并打印出含有以及不含符号链接的目录。


在home目录下创建一个htm链接指向/var/www/html，并进入。



```
avi@tecmint:~$ ln -s /var/www/html/ htm
avi@tecmint:~$ cd htm

```

![Create Symbolic Link](/images/p/201412/02/150920ej12f09r1729q5br.gif)


*创建符号链接*


**3.** 从当前环境中打印目录即使它含有符号链接。



```
avi@tecmint:~$ /bin/pwd -L
/home/avi/htm

```

![Print Current Working Directory](/images/p/201412/02/150921tqd7aa5ad1qlz3ah.gif)


*打印工作目录*


**4.** 解析符号链接并打印出物理目录。



```
avi@tecmint:~$ /bin/pwd -P
/var/www/html

```

![Print Physical Working Directory](/images/p/201412/02/150923bg6b7gxqs2xww63g.gif)


*打印物理工作目录*


**5.** 查看一下“**pwd**”和“**pwd -P**”的输出是否一致，也就是说，如果没有跟上选项，“**pwd**”时候会自动采用**-P**选项。



```
avi@tecmint:~$ /bin/pwd
/var/www/html

```

![Check pwd Output](/images/p/201412/02/150925w6prnxfgrzplr4iz.gif)


*检查pwd输出*


**结论：** 上面例子4和5的输出很明显（结果相同），当你“**pwd**”后面不带参数时，pwd会使用“**-P**”选项。


**6.** 打印pwd命令的版本。



```
avi@tecmint:~$ /bin/pwd --version

pwd (GNU coreutils) 8.23
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Jim Meyering.

```

![Check pwd Version](/images/p/201412/02/150926x6dx6m6vumx82ydk.gif)


*检查pwd命令版本*


**注意：** ‘pwd’ 通常不带选项运行，且没有任何参数


**重要：** 你可能注意到我们刚才运行的都是 “**/bin/pwd**” 而不是 “**pwd**”。


这有什么区别呢？直接使用“**pwd**”意味着使用shell内置的pwd。你的shell可能有不同版本的pwd。具体请参考手册。当你使用的是**/bin/pwd**时，我们调用的是二进制版本的命令。虽然二进制的版本有更多的选项，但是它们两者都能打印当前的目录。


**7.** 打印所有含有可执行pwd的路径



```
avi@tecmint:~$ type -a pwd
pwd is a shell builtin
pwd is /bin/pwd

```

![Print Executable Locations](/images/p/201412/02/150928rrx2hjv5kqzaxh5a.gif)


*打印可执行文件路径*


**8.** 存储“**pwd**”命令的值到变量中（比如说：**a** ），并从中打印变量的值（对于观察shell脚本很重要）。



```
avi@tecmint:~$ a=$(pwd)
avi@tecmint:~$ echo "Current working directory is : $a"
Current working directory is : /home/avi

```

![Store Pwd Value in Variable](/images/p/201412/02/150930lliwalb6lwqu8ya0.gif)


*存储pwd的值到变量中*


下面的例子中也可以用**printf**来替代。


**9.** 将工作路径切换到其他地方（比如说 **/home**），并在命令行中显示。通过执行命令（比如说 ‘**ls**‘）来验证一切**OK**。



```
avi@tecmint:~$ cd /home
avi@tecmint:~$ PS1='$pwd> '     [注意例子中的单引号]
> ls

```

![Change Current Working Directory](/images/p/201412/02/150932f333b8vini1muw68.gif)


*改变当前工作路径*


**10.** 设置多行显示 （就像下面这样），



```
/home
123#Hello#!

```

接着执行命令（比如说 **ls**）来检验一切**OK**。



```
avi@tecmint:~$ PS1='
> $PWD
$ 123#Hello#!
$ '

/home
123#Hello#!

```

![Set Multi Commandline Prompt](/images/p/201412/02/150934nvigaccczbnhzg5h.gif)


*设置多行显示*


**11.** 一下子检查当前工作路径以及先前的工作路径。



```
avi@tecmint:~$ echo “$PWD $OLDPWD”
/home /home/avi

```

![Check Present Previous Working Directory](/images/p/201412/02/150935nea9aceqaq93eq22.gif)


*检查当前工作路径*


**12.** pwd文件的绝对路径（以**/**开始）。



```
/bin/pwd 

```

**13.** pwd源文件文件的绝对路径（以**/**开始）。



```
/usr/include/pwd.h 

```

**13.** pwd手册的绝对路径（以**/**开始）。



```
/usr/share/man/man1/pwd.1.gz

```

**15.** 写一个shell脚本分析home目录下的一个目录（比如**tecmint**）。如果当前目录是**tecmint**就输出“**Well! You are in tecmint directory**”接着输出“**Good Bye**”，不然就在**tecmint**下面创建一个目录并提示你cd进入它。


让我们首先创建一个‘tecmint’目录，在下面创建一个名为‘pwd.sh’的脚本文件。



```
avi@tecmint:~$ mkdir tecmint
avi@tecmint:~$ cd tecmint
avi@tecmint:~$ nano pwd.sh

```

接下来在pwd.sh中加入下面的脚本。



```
#!/bin/bash

x="$(pwd)"
if [ "$x" == "/home/$USER/tecmint" ]
then
     {
      echo "Well you are in tecmint directory"
      echo "Good Bye"
     }
else
     {
      mkdir /home/$USER/tecmint
      echo "Created Directory tecmint you may now cd to it"
     }
fi

```

给予执行权限并运行。



```
avi@tecmint:~$ chmod 755 pwd.sh
avi@tecmint:~$ ./pwd.sh
Well you are in tecmint directory
Good Bye

```

#### 总结


**pwd**是一个最简单且会广泛用到的命令。掌握好pwd是使用Linux终端的基础。就是这些了。我很快会再带来另外有趣的文章，请不要走开继续关注我们。




---


via: <http://www.tecmint.com/pwd-command-examples/>


作者：[Avishek Kumar](http://www.tecmint.com/author/avishek/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出