AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 462739
Accepted
user151851
user151851
Asked: 2013-01-04 12:29:40 +0800 CST2013-01-04 12:29:40 +0800 CST 2013-01-04 12:29:40 +0800 CST

如何 cd 进入名称为“-2”(以连字符开头)的目录?

  • 772

我有一个名为的目录:

-2

我想 cd 进入它,但 cd 抱怨:

bash: cd: -2: invalid option

没有成功,我试过:

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

任何解决方案?

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

linux
  • 6 6 个回答
  • 57315 Views

6 个回答

  • Voted
  1. Best Answer
    Michael Hampton
    2013-01-04T12:32:11+08:002013-01-04T12:32:11+08:00

    至少有两种方式:

    1. 使用--参数。

      cd -- -2
      

      这使用 GNU 工具通用的约定,即不将后面出现的任何内容--视为命令行选项。

      正如一位评论者所指出的,该约定也在POSIX 标准中定义:

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

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

      foo -- -myfile
      

      并避免将-m用作扩展名的任何问题。

      以及:

      准则 10:应接受
      参数作为指示选项结束的定界符。--任何后续参数都应被视为操作数,即使它们以'-'字符开头。该--参数不应用作选项或操作数。

    2. 明确指定路径:

      cd ./-2
      

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

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

      这些是上述的变体。任何数量的此类变化都是可能的;我将把它作为练习留给读者去发现所有这些。

    • 306
  2. Tim Haegele
    2013-01-04T12:33:41+08:002013-01-04T12:33:41+08:00

    这应该工作:

    cd -- -2 
    

    -- 意味着没有更多的选择

    • 54
  3. newbee
    2013-01-04T22:19:12+08:002013-01-04T22:19:12+08:00

    如果“-2”在当前目录中,这将起作用。

        cd ./-2
    

    您可以通过键入 - 并按 Tab 键来自动完成。

    • 31
  4. Vivek
    2013-01-04T18:46:59+08:002013-01-04T18:46:59+08:00

    cd /home/...../-2也有效。提供访问的完整路径。 

    • 13
  5. Zignd
    2013-01-05T06:14:05+08:002013-01-05T06:14:05+08:00

    补充一下,如果你想删除/删除这个目录,你可以使用以下命令:

    rm -r -- -2
    
    • 8
  6. jmathewt
    2017-07-06T06:00:14+08:002017-07-06T06:00:14+08:00

    我知道这个问题已经得到回答。如果有人遇到像我这样的情况,这是给他们的:

    我运行了一个 java 应用程序,它正在寻找一个以 开头的目录<path>,我应该在运行该应用程序之前用正确的路径替换它。但是,我忘了这样做。该应用程序创建了一个名为<path>.

    我尝试cd <path>- 给了我错误“-bash:意外令牌换行符附近的语法错误”基于这里的建议(我知道它的目录以 - 而不是 < 开头)我试过了cd -- <path>。但是,我得到了同样的错误。

    当我尝试时cd \<path>\- 这有效!

    背景资料:

    符号“<”和“>”用于重定向 STDIN 和 STDOUT,因此需要对它们进行转义以使 shell 不将它们解释为重定向。

    • 0

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve