Linux/UNIX sh shell中的哪个命令会返回我的当前目录?
使用sh
shell(不是bash
),Linux/UNIX中哪个命令可以打印出我的当前目录?
$ *showmewhereiam*
/sys/kernel/debug
$
使用sh
shell(不是bash
),Linux/UNIX中哪个命令可以打印出我的当前目录?
$ *showmewhereiam*
/sys/kernel/debug
$
试试pwd
。
$ pwd
/home/<username>
虽然一般的答案是pwd
,但请注意,这可能会给出不同的结果,这取决于你如何到达一个给定的目录,以及该路径是否包括符号链接。
例如,如果你有一个名为real
的目录和一个名为virtual
的通往该目录的符号链接,而你cd
到了virtual
目录,那么pwd
将显示该virtual
目录名,即使你实际所在的目录是real
。
要显示真正的底层目录,使用pwd -P
或readlink -f
(对于任意路径):
$ mkdir real $ ln -s real virtual $ cd virtual $ pwd /home/_username_/tmp/virtual $ pwd -P /home/_username_/tmp/real $ readlink -f . /home/_username_/tmp/real
注意,shell经常用自己的内部版本替换pwd
命令,所以在我的系统(RHEL6)上,尽管pwd(1)
手册页面建议--physical
可以和-P
一样工作,但因为我运行的是bash
,所以并没有:
$ pwd --physical bash: pwd: --: invalid option pwd: usage: pwd [-LP] $ /bin/pwd --physical /home/_username_/tmp/real $ /usr/bin/env pwd --physical /home/_username_/tmp/real
```。
$ pwd
/your/current/directory
$
pwd
来自print工作目录。
名称
pwd - 打印当前/工作目录的名称
概要
pwd [OPTION]…。
说明
打印当前工作目录的完整文件名。
-L , –逻辑
使用环境中的 PWD,即使它包含符号链接
-P 。–物理
避免所有符号链接
–帮助
显示帮助并退出
–版本
输出版本信息并退出
注意。你的shell可能有自己的pwd版本,它通常会取代这里描述的版本。请参考你的shell文档,了解它所支持的选项的细节。
(…)
正如其他人所说,pwd
通常能很好地完成这项工作。不过,我想补充一个对我有帮助的想法。
在所有常用的shell上,你可以自定义命令提示符的外观。我喜欢自定义我的命令提示符,让它同时显示我所在的计算机名称和我的工作目录。这样一来,我总是知道我在哪里。(计算机名称部分可以帮助我意识到我所使用的终端窗口是否被用来SSH进入远程服务器。) 例如,当我在我的笔记本上打开一个新的终端窗口时,我把它叫做Plastico,我看到了这个。
Plastico ~> cd Desktop/
Plastico ~/Desktop> cd ~/Sites/raygunrobot.com
Plastico ~/Sites/raygunrobot.com> cd /usr
Plastico /usr>
你可以看到它把我的主目录缩写为~
. 我发现这样做对我的终端提示非常方便–我总是能一目了然地知道我在哪里,甚至比我看Finder窗口还要方便。
在tcsh上,我是通过在我的home目录下的.tcshrc文件中添加set prompt = 'Plastico %~%# '
来实现的。在 ksh 上,我也是通过在我的 .profile 文件中添加 export PS1="Plastico $PWD $ "
来实现的。但是作为一个Linux用户,你可能会使用Bash,而我对Bash没有太多经验(我是个怪人)。但是看起来像我也许可以通过在我的.bashrc文件中添加PS1="Plastico \w $ "
来实现。
编辑:刚刚注意到OP说你对sh感兴趣,而不是bash。哦,好吧;希望大家觉得这个有用。