我有一个名为的目录:
-2
我想通过 cd 进入它但是 cd 抱怨:
bash: cd: -2: invalid option
我没有成功,我尝试过:
cd "-2"
cd '-2'
cd \-2
有什么解决办法吗?
编辑:服务器上没有可用的文件浏览器,例如 mc 等。
答案1
至少有两种方法:
使用
--
論點。cd -- -2
这使用了 GNU 工具的通用约定,即不将之后出现的任何内容
--
视为命令行选项。作为一个评论者注意到,该公约也POSIX 标准中定义:
默认行为:当此部分列为“无”时,表示实现不需要支持任何选项。不接受选项但接受操作数的标准实用程序应将其识别
"--"
为要丢弃的第一个参数。之所以需要识别
"--"
,是因为符合要求的应用程序需要一种方法来保护其操作数不受实现可能作为扩展提供的任何任意选项的影响。例如,如果标准实用程序 foo 被列为不带任何选项,而应用程序需要为其提供一个以连字符开头的路径名,则可以安全地这样做:foo -- -myfile
并避免任何问题-m用作扩展。
也:
准则 10:
参数--
应被接受为表示选项结束的分隔符。任何后续参数都应被视为操作数,即使它们以字符开头'-'
。--
参数不应用作选项或操作数。明确指定路径:
cd ./-2
.
这指定了明确命名当前目录( )作为起点的路径。cd $(pwd)/-2 cd /absolute/path/to/-2
这些是上述内容的变体。可能有任意数量的此类变体;我将把发现所有变体的任务留给读者。
答案2
这应该有效:
cd -- -2
-- 表示没有更多选择
答案3
如果当前目录中有“-2”,则此方法有效。
cd ./-2
您可以通过输入 - 并按 Tab 键来自动完成。
答案4
仅作为补充,如果您想删除此目录,您可以使用以下命令:
rm -r -- -2