如何cd到这个名字为“-2”的目录(以连字符开头)?

我有一个名为:

-2 

我想CD到CD但抱怨:

 bash: cd: -2: invalid option 

没有成功,我试过了:

 cd "-2" cd '-2' cd \-2 

任何解决scheme

编辑:在服务器上没有可用的文件浏览器,如MC等。

    至less有两种方法:

    1. 使用--参数。

       cd -- -2 

      这使用了GNU工具通用的约定,它不会将以后出现的任何东西视为命令行选项。

      正如一位评论者所指出的那样,这个约定也是在POSIX标准中定义的 :

      默认行为:当此部分列为“无”时,表示实现不需要支持任何选项。 不接受选项但接受操作数的标准实用程序应将"--"识别为要丢弃的第一个参数。

      识别"--"的要求是因为符合的应用程序需要一种方法来屏蔽它们的操作数,使其不受实现可能作为扩展提供的任意选项的影响。 例如,如果标准实用程序foo被列为不带选项,并且应用程序需要给它一个带有前导连字符的path名,则可以安全地将其作为:

       foo -- -myfile 

      并避免使用-m作为扩展的任何问题。

      以及 :

      准则10:
      这个论点--应该被接受为表示选项结束的分隔符。 任何下面的参数都应该被视为操作数,即使它们以'-'字符开始。 该参数不应该被用作选项或操作数。

    2. 明确指定path:

       cd ./-2 

      这指定明确命名当前目录( . )的path作为起点。

       cd $(pwd)/-2 cd /absolute/path/to/-2 

      这些都是以上的变化。 任何数量的这种变化都是可能的; 我将把它作为一个练习给读者来发现所有这些。

    这应该工作:

     cd -- -2 

    – 意味着没有更多的select

    如果'-2'在当前目录中,这将工作。

      cd ./-2 

    您可以通过键入 – 然后按Tab来自动完成。

    cd /home/…../-2也可以。 给出访问的完整path。

    只是为了补充,如果你想删除/删除这个目录,你可以使用下面的命令:

     rm -r -- -2 

    我知道这个问题已经被回答了。 如果有人有我的情况,这是他们的:

    我运行了一个java应用程序,它正在寻找一个以<path>开头的目录,我应该在运行应用程序之前用适当的pathreplace它。 但是,我忘了这么做。 该应用程序创build了一个名为<path>的目录。

    我试图cd <path> – 给我错误“-bash:语法错误附近意外的标记换行符”基于这里的build议(我明白,它的目录开始 – 而不是<)我试过cd -- <path> 。 但是,我得到了同样的错误。

    当我尝试cd \<path>\ – 这工作!