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