如何将CD刻录到名称以“-”(减号)开头的目录?


10

我们有些文件夹的名称以“-”开头。如果尝试使用终端输入它们,cd则将“-”解释为一个选项。我该如何处理?


1
最好避免在目录/文件夹名称中使用此类字符。
Mindwin

你不能做cd '-my-directory'吗?
OldBunny2800

@ oldbunny2800您尝试过吗?
nohillside

1
@ OldBunny2800否。引号可防止外壳程序分开处理字符;以连字符开头的字符串被接收参数的命令视为选项(或不视为选项),而不管这些字符串如何呈现给shell。
chepner

1
@patrix我在发表评论后就做了,然后被其他终端恶作剧分散注意力,然后忘记了我的评论。:) Chepner哦,这更有意义。
OldBunny2800

Answers:


20

这应该工作:

cd /path/to/-folderthatstartswithdash

编辑

根据此问题,如果您只想输入名称,则此方法有效:

cd -- -folderthatstartswithdash

5
--方法是正确的答案...它将与大多数接受文件名作为参数的标准实用程序一起使用,并且省去了完全限定路径的麻烦。
卡塔尔

--方法在“关闭”参数解析时起作用。
托尼·威廉姆斯

3
为什么要限制“如果只想输入名称”?如果您需要更多参数,只需将它们放在之前--
费德里科·波洛尼

@FedericoPoloni我只是说,如果您不想使用完整路径,可以使用此路径。所有其他参数应放在-之前。
Tom Shen

19
cd ./-folder

通常在这里工作得很好(以及其他命令)


该解决方案的一个优点是它可以与任何程序或命令一起使用,而不仅限于“ cd”。它不依赖于具有任何特殊行为(例如“-”)的命令或程序来更改后续参数的解释。
拉里·格里茨

-5

将名称放在引号中应该可以。


3
为什么会起作用?公用事业如何知道差异?报价是由外壳程序完成的,毕竟,实用程序接收到的arguments数组将完全相同。我承认我没有尝试过您的解决方案,但是据我对shell的了解很少,这似乎是不言而喻的,这可能行不通。
约尔格W¯¯米塔格

这应该可以在Windows IIRC上运行,这是我首先想到的,但是我可以确认它在Mac上不起作用。
Cullub

2
如果它可以在Windows上运行,那仅仅是因为Windows的命令行模型非常荒谬和不一致。或者仅仅是因为Windows命令没有被-视为选项字符。但是,引用不可能改变这种行为。
R .. GitHub停止帮助ICE
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.