菜鸟教程:全面学习 pwd 命令

菜鸟教程:全面学习 pwd 命令

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

15 pwd Command Examples

 

什么是pwd?

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

pwd的基本语法:


  1. # pwd [OPTION]

pwd的选项

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

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

pwd的退出状态:

0 成功
非零值 失败

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

1. 打印当前工作目录.


  1. avi@tecmint:~$ /bin/pwd
  2. /home/avi

打印工作目录

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

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


  1. avi@tecmint:~$ ln -s /var/www/html/ htm
  2. avi@tecmint:~$ cd htm

创建符号链接

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


  1. avi@tecmint:~$ /bin/pwd -L
  2. /home/avi/htm

打印工作目录

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


  1. avi@tecmint:~$ /bin/pwd -P
  2. /var/www/html

打印物理工作目录

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


  1. avi@tecmint:~$ /bin/pwd
  2. /var/www/html

检查pwd输出

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

6. 打印pwd命令的版本。


  1. avi@tecmint:~$ /bin/pwd --version
  2.  
  3. pwd (GNU coreutils) 8.23
  4. Copyright (C) 2014 Free Software Foundation, Inc.
  5. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
  6. This is free software: you are free to change and redistribute it.
  7. There is NO WARRANTY, to the extent permitted by law.
  8.  
  9. Written by Jim Meyering.

检查pwd命令版本

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

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

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

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


  1. avi@tecmint:~$ type -a pwd
  2. pwd is a shell builtin
  3. pwd is /bin/pwd

打印可执行文件路径

8. 存储“pwd”命令的值到变量中(比如说:a ),并从中打印变量的值(对于观察shell脚本很重要)。


  1. avi@tecmint:~$ a=$(pwd)
  2. avi@tecmint:~$ echo "Current working directory is : $a"
  3. Current working directory is : /home/avi

存储pwd的值到变量中

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

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


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

改变当前工作路径

10. 设置多行显示 (就像下面这样),


  1. /home
  2. 123#Hello#!

接着执行命令(比如说 ls)来检验一切OK。


  1. avi@tecmint:~$ PS1='
  2. > $PWD
  3. $ 123#Hello#!
  4. $ '
  5.  
  6. /home
  7. 123#Hello#!

设置多行显示

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


  1. avi@tecmint:~$ echo “$PWD $OLDPWD”
  2. /home /home/avi

检查当前工作路径

12. pwd文件的绝对路径(以/开始)。


  1. /bin/pwd

13. pwd源文件文件的绝对路径(以/开始)。


  1. /usr/include/pwd.h

13. pwd手册的绝对路径(以/开始)。


  1. /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’的脚本文件。


  1. avi@tecmint:~$ mkdir tecmint
  2. avi@tecmint:~$ cd tecmint
  3. avi@tecmint:~$ nano pwd.sh

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


  1. #!/bin/bash
  2.  
  3. x="$(pwd)"
  4. if [ "$x" == "/home/$USER/tecmint" ]
  5. then
  6. {
  7. echo "Well you are in tecmint directory"
  8. echo "Good Bye"
  9. }
  10. else
  11. {
  12. mkdir /home/$USER/tecmint
  13. echo "Created Directory tecmint you may now cd to it"
  14. }
  15. fi

给予执行权限并运行。


  1. avi@tecmint:~$ chmod 755 pwd.sh
  2. avi@tecmint:~$ ./pwd.sh
  3. Well you are in tecmint directory
  4. Good Bye

总结

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

原文发布时间:2014-12-02

本文来自云栖合作伙伴“linux中国”

时间: 2024-09-19 09:57:33

菜鸟教程:全面学习 pwd 命令的相关文章

Linux命令学习总结:pwd命令

命令简介:     该命令用来显示目前所在的工作目录.指令英文原义:print work directory     执行权限    :All User     指令所在路径:/usr/bin/pwd 或 /bin/pwd 命令语法:     pwd [OPTION]... 命令参数:  参数 长参数 描叙 -L --logical(无效) 当目录为连接路径时,显示连接路径 -P --physical(无效) 显示实际物理路径,而非使用连接(link)路径 --help 显示命令在线帮助(该参数

Docker入门教程(二)命令

本文讲的是Docker入门教程(二)命令,[编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第二篇,介绍了Docker的基本命令以及命令的用法和功能. 在Docker系列教程的第一篇文章中,我们了解了Docker的基础知识,知道了它是如何工作以及如何安装的.在这篇文章中,我们将学习15个Docker命令,并通过实践来学习它是如何工作的. 首先,让我们通过下面的命令来检查Docker的安装是否正确: docker info  如果没有找到这条命令,则表示

linux基础命令(3) pwd命令

Linux中用 pwd 命令来查看"当前工作目录"的完整路径.简单得说,每当 你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时 ,就会使用pwd来判定当前目录在文件系统内的确切位置. 1.命令格式 : pwd [选项] 2.命令功能: 查看"当前工作目录"的完 整路径 3.常用参数: 一般情况下不带任何参数 如果目录 是链接时: 格式:pwd -P  显示出实际路径,而非使用连接(link )路径. 4.常用实例: 实例1:用 pwd 命令查看默

linux系统pwd命令怎么用

在Linux层次结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录.然而,没有提示符来告知用户目前处于哪一个目录中.想要知道当前所处的目录,可以用pwd命令,该命令显示整个路径名. 全称 Print Working Directory 用途 显示工作目录的路径名称. 语法 pwd [ -L | -P ] 描述 pwd 命令将当前目录的全路径名称(从根目录)写入标准输出.全部目录使用 /(斜线)分隔.第一个 / 表示根目录,最后一个目录是

linux系统下pwd命令用法详解

  Linux中用 pwd 命令来查看"当前工作目录"的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置. 1.命令格式: pwd [选项] 2.命令功能: 查看"当前工作目录"的完整路径 3.常用参数: 一般情况下不带任何参数 如果目录是链接时: 格式:pwd -P 显示出实际路径,而非使用连接(link)路径. 4.常用实例: 实例1:用 pwd 命令查看默认工作目

ps新手教程之学习图层的基础知识-玩转ps的图层操作技巧

  ps新手教程之学习图层的基础知识-玩转ps的图层操作技巧,艺术家使用ps,摄影师使用ps,数码玩家们也使用ps,与此同时,web设计湿更是离不开PS !该软件气势空前鼎盛,无人不知无人不晓.图层面板是自由独立于ps工作空间里面的一个面板.在这个神奇的图层里面,我们可以缩放.更改颜色.设置样式.改变透明度,等等等等.一个图层代表了一个单独的元素,设计师可以任意更改之.图层可以说在网页设计中起着至关重要的作用.他们用来表示网页设计的元素,他们是用来显示文本框.图像.背景.内容和更多其他元素的基底

java-我在菜鸟教程上下载了一个JQuery的Demo,但是无法导入进Eclipse里,如何才能导入呢?

问题描述 我在菜鸟教程上下载了一个JQuery的Demo,但是无法导入进Eclipse里,如何才能导入呢? 是不是因为没有Project文件 解决方案 因为没有.project文件,所以它不是一个java工程,当然无法导入了.可以自己新建一个工程,再把这些文件复制到项目根目录下就可以了. 解决方案二: jquery是js不是java,用不着什么项目,也没有什么编译的过程,在eclipse中打开也就是把它当一个大号的文本编辑器罢了. 解决方案三: Jquery不是用eclipse打开的,Jquer

基础-关于初级的java菜鸟该怎么学习java

问题描述 关于初级的java菜鸟该怎么学习java 有人可以给我推荐一下作为一个java菜鸟,我该看什么什么类型的书,什么书, 还有该如何学习java,是多看多练么?我是学生,学过c语言,基础不是很好. 解决方案 如果之前有编程基础的话学起java来不会那么吃力.我这有一本很全面的电子书,希望能够帮到你,http://pan.baidu.com/s/1dDGPTN7 http://pan.baidu.com/s/1i3knIol 解决方案二: 学以致用,以用养学. 以下为一家之言: 首先,还是得

数学菜鸟的AI学习攻略 | 数学符号轻松入门

你是否跟我一样,自幼恨透数学. 现在,我终于发现了我对数学绝缘的最主要原因:我的老师从来不去回答最重要的问题:我为什么要学数学?学数学有什么用? 他们只是在黑板上写下一大堆方程,并让我记下来.  现在,如果你对AI这个激动人心的领域感兴趣,那么它将是回答这个问题最好的答案!那就是,我想要写一个更好的图像识别程序,或者一个可以理解自然语言的交互界面!也许甚至想有一天写出自己的算法? 如果你想从阅读 arXiv(https://arxiv.org/list/cs.AI/recent) 上的几篇论文开