![为什么 pwd 不接受像 --physical 这样的长选项?](https://linux22.com/image/146727/%E4%B8%BA%E4%BB%80%E4%B9%88%20pwd%20%E4%B8%8D%E6%8E%A5%E5%8F%97%E5%83%8F%20--physical%20%E8%BF%99%E6%A0%B7%E7%9A%84%E9%95%BF%E9%80%89%E9%A1%B9%EF%BC%9F.png)
当我显示命令手册时,它说支持pwd
长选项--physical
$ man pwd
PWD(1) User Commands PWD(1)
NAME
pwd - print name of current/working directory
SYNOPSIS
pwd [OPTION]...
DESCRIPTION
Print the full filename of the current working directory.
-L, --logical
use PWD from environment, even if it contains symlinks
-P, --physical
avoid all symlinks
但是,当我输入以下内容时,它失败了
$ pwd --physical
-bash: pwd: --: invalid option
pwd: usage: pwd [-LP]
为什么多头期权对我不起作用?
我使用的是 RHEL 6.4。没有配置 pwd 的别名。看起来这是标准的 pwd:
$ which pwd
/bin/pwd
答案1
bash
有一个内置命令,您只需在 shell 中pwd
键入即可使用该命令。pwd
要获得pwd
联机帮助页中描述的内容,您需要强制使用外部命令。您可以通过指定可执行文件的完整路径(/bin/pwd
在您的情况下)或通过env
在行之前添加来完成此操作:env pwd
,该行启动env
可用于向环境添加设置的命令(但此处未完成),然后env
启动指定的命令。由于env
没有内置,因此执行pwd
“真实” 。/bin/pwd
bash内置命令的优点pwd
是bash
跟踪当前目录,因此获取值的成本为零,而外部命令需要在文件系统中搜索以确定路径,这需要更多的 IO 密集程度。
答案2
该手册页文档/bin/pwd
,但是当您运行时,pwd
您正在使用内置的 shell;查看输出
type pwd
您的 shell 的内置功能pwd
不支持长选项(请参阅您的 shell 文档;由于您使用的是 Bash,help pwd
因此将提供摘要)。