Linux/UNIX sh shell 中的哪个命令返回我的当前目录?

Hie*_*yen 43 linux sh

使用shshell(不是bash),Linux/UNIX 中的哪个命令会打印出我的当前目录?

$ *showmewhereiam*
/sys/kernel/debug
$
Run Code Online (Sandbox Code Playgroud)

lou*_*ear 68

试试pwd

$ pwd
/home/<username>
Run Code Online (Sandbox Code Playgroud)

  • 当我第一次接触 linux 时,我认为这是一个关于 **password** 的命令,而 `/dev` 是关于开发的(源代码或类似的东西) (6认同)
  • 哦,开发是指设备?!一直认为直到现在它只是意味着 dev...我认为 dev/null 是 linux **developers** 放置特殊空对象的地方。谢谢@LiuYan刘研 (2认同)
  • @LiuYan刘研 - 如果你不知道,我完全同意这会让人困惑。我不得不查一下。它代表“打印工作目录”,适用于对为什么会为该功能选择该命令感到困惑的其他人。 (2认同)

Mar*_*oth 13

虽然一般的答案是pwd,但请注意,这可能会产生不同的结果,具体取决于您到达给定目录的方式以及路由是否包含符号链接。

举例来说,如果你有一个名为目录real和符号链接到名为该目录virtual,你cdvirtual目录,然后pwd将显示virtual目录名,即使实际的目录你是在为real

要显示真正的底层目录,请使用pwd -Preadlink -f(对于任意路径):

$ mkdir 实数
$ ln -s 实虚
$ cd 虚拟
$密码
/home/用户名/tmp/virtual
$密码 -P
/home/用户名/tmp/real
$ readlink -f 。
/home/用户名/tmp/real

请注意,shell 经常pwd用它们自己的内部版本替换命令,所以在我的系统 (RHEL6) 上,即使pwd(1)手册页表明它--physical会和 一样工作-P,因为我正在运行bash,它不会:

$ pwd --物理
bash: pwd: --: 无效选项
密码:用法:密码 [-LP]
$ /bin/pwd --物理
/home/用户名/tmp/real
$ /usr/bin/env pwd --physical
/home/用户名/tmp/real