所以,如果我man cd
,我会获得bash builtins的联机帮助页。
如果我cd -?
,我会收到以下信息:
cd -?
-bash: cd: -?: invalid option
cd: usage: cd [-L|[-P [-e]] [-@]] [dir]
我知道前两个选项是什么。然后我搜索了两个选项。
-e
选项,我找到了this answer on the Unix StackExchange。-@
选项,我找不到任何解释。 我的系统信息:
但是,如果我运行which cd
,我会获得/usr/bin/cd
。 Homebrew不触及/usr/local
之外的任何内容,所以我只能假设这是系统的cd
。
但我找不到该选项的文档!这让我发疯了。
有谁知道-@
做了什么?
答案 0 :(得分:2)
这是一个新选项(截至bash-4.3)。更改日志包含以下描述:
' CD'有一个新的` - @'用于浏览文件扩展属性的选项 支持O_XATTR的系统。
键入help <name>
或man bash
以获取有关bash命令的更多信息。 (在bash手册页中,您可以通过键入cd
后跟搜索字符串来搜索/
,然后输入。n
转到下一个匹配,转移+ n
去向后)。
bash手册页包含以下内容:
在支持它的系统上, - @选项显示扩展名 与文件关联的属性作为目录。
答案 1 :(得分:0)
查看bash的手册页以获取解释。相关部分说:
如果dir以斜杠(/)开头,则不使用CDPATH。 -P选项使cd通过在遍历dir时和在dir中处理..的实例之前解析符号链接来使用物理目录结构(另请参阅set builtin命令的-P选项); -L选项强制符号链接,然后在处理dir中的..实例后解析链接。如果..出现在目录中,则通过从dir中删除前一个路径名组件,回到斜杠或dir的开头来处理它。如果-e选项随-P提供,并且在目录更改成功后无法成功确定当前工作目录,则cd将返回不成功的状态。在支持它的系统上, - @选项将与文件关联的扩展属性显示为目录。在尝试更改目录之前,将 - 的参数转换为$ OLDPWD。如果使用CDPATH中的非空目录名,或者 - 是第一个参数,并且目录更改成功,则新工作目录的绝对路径名将写入标准输出。