你好,我很困惑 cd-- 做什么?

-4 linux cd-command

我在 Linux 终端中输入 cd -- ,它把我带到了一个我不认识的目录。cd -- 带你去哪里?是你的根目录吗?

ter*_*don 6

未给定参数时的默认操作cd是移动到$HOME变量给定的目录。这是POSIX 强制要求的

如果没有给出目录操作数并且 HOME 环境变量为空或未定义,则默认行为是实现定义的,并且不应采取进一步的步骤。

现在,它--也是一个 POSIX 功能,许多工具都使用它来指示选项的结束。这对于处理以-例如开头的名称非常有用。例如,在这个目录中,我有一个名为-a

$ ls
-a
Run Code Online (Sandbox Code Playgroud)

如果我尝试cat这样做,我会得到:

$ cat -a
cat: invalid option -- 'a'
Try 'cat --help' for more information.
Run Code Online (Sandbox Code Playgroud)

这就是--出现的地方:

$ cat -- -a
These are the contents of file -a!
Run Code Online (Sandbox Code Playgroud)

所以,在你的例子中,你只是cd跟着--运行来表示参数的结束,这转化为cd没有参数的运行。结果就是你$HOME就像cd一个人跑步一样进入了你的状态,如果你已经进入了$HOME,那么看起来好像什么都没有改变。$ grep foo -a


我假设你实际上运行了cd --而不是cd--因为后者会给出更清晰的错误:

$ cd--
bash: cd--: command not found
Run Code Online (Sandbox Code Playgroud)

除非您有自己的脚本或函数,cd--在这种情况下我们无法知道发生了什么,但您会知道。