使用sh
外壳程序(不是bash
),Linux / UNIX中的哪个命令可以打印出当前目录?
$ *showmewhereiam*
/sys/kernel/debug
$
unix whereami
使用sh
外壳程序(不是bash
),Linux / UNIX中的哪个命令可以打印出当前目录?
$ *showmewhereiam*
/sys/kernel/debug
$
unix whereami
Answers:
尝试pwd
。
$ pwd
/home/<username>
/dev
是关于开发的(源代码或类似的东西)
尽管一般答案是pwd
,请注意,这可能会产生不同的结果,具体取决于您如何到达给定目录以及路由是否包含符号链接。
例如,如果您有一个名为的目录,real
并且有一个指向该目录的符号链接virtual
,并且您cd
指向该virtual
目录,那么即使您所在的实际目录为,pwd
也会显示该virtual
目录名称real
。
要显示真实的基础目录,请使用pwd -P
或readlink -f
(对于任意路径):
$ mkdir实 $ ln -s实际虚拟 $ cd虚拟 $ pwd / home / 用户名 / tmp / virtual $ pwd -P / home / 用户名 / tmp / real $ readlink -f。 / home / 用户名 / tmp / real
请注意,shell通常会pwd
用其自己的内部版本替换命令,因此在我的系统(RHEL6)上,即使pwd(1)
手册页建议该命令--physical
也可以和一样工作-P
,因为我正在运行bash
,但不会:
$ pwd-物理 bash:pwd:-:无效选项 pwd:用法:pwd [-LP] $ / bin / pwd-物理 / home / 用户名 / tmp / real $ / usr / bin / env pwd-物理 / home / 用户名 / tmp / real
正如其他人所说,pwd
通常做得很好。但是,我想添加一个对我有所帮助的想法。
在当今所有常用的外壳程序上,您都可以自定义命令提示符的外观。我想自定义我的我的名字,以便它同时显示我所在计算机的名称和工作目录。这样,我总是知道我在哪里。(计算机名称部分可帮助我了解所使用的终端窗口是否已用于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文件中。我也通过添加export PS1="Plastico $PWD $ "
到.profile文件在ksh上完成了此操作。但是,作为Linux用户,您可能会使用Bash,我对此没有太多经验(我是这样的怪人)。但看起来我可以通过将其添加PS1="Plastico \w $ "
到.bashrc文件中来做到这一点。
编辑:刚注意到OP状态您对sh感兴趣,而不是bash。那好吧; 希望人们无论如何都觉得有用。
Plastico /var/www/vhosts/myveryexcellentwebsite.com/public_html/wp-content/themes/myveryexcellenttheme/js/vendor/excellentjs/ >
或类似的提示,对于超深目录来说,它似乎就变得很笨拙。
$ pwd
/your/current/directory
$
pwd
来自打印工作目录。
名称
pwd-当前/工作目录的打印名称
概要
pwd [选项] ...
描述
打印当前工作目录的完整文件名。
-L,--logical
从环境使用PWD,即使它包含符号链接
-P,-物理
避免所有符号链接
- 救命
显示此帮助并退出
- 版
输出版本信息并退出
注意:您的Shell可能有其自己的pwd版本,通常会取代此处描述的版本。请参阅您的Shell文档以获取有关其支持的选项的详细信息。
(...)