为什么我无法进入这个目录?

3
我试图进入一个目录,但终端说它不存在,尽管它确实存在。 在这里输入图片描述
2个回答

6
您正在使用两个参数调用cd,分别是Prog16.1。您需要仅使用一个参数Prog 16.1进行调用,为此,您需要“引用”中间的空格,这样它就不会被解释为分隔两个参数了。以下是几个选项:
  • cd 'Prog 16.1'
  • cd Prog' '16.1
  • cd "Prog 16.1"
  • cd Prog" "16.1
  • cd Prog\ 16.1

哦,菜鸟错误,但我猜这就是因为在我的文件名中放置空格所得到的结果。 - Amre
根据您的shell,文件名自动补全可能会有所帮助。输入 cd Prog 然后按TAB键; 它将被扩展为类似于 cd Prog\ 16.1/ 的内容。 - Keith Thompson
1
@KeithThompson:这通常是正确的,但在OP的情况下不是这样,因为同一个目录包含(例如)名为“Program 10.3”的文件。(有些shell仍然会尝试帮助,但在OP的情况下没有一个会非常成功。而且OP正在使用Bash,它甚至不会尝试。) - ruakh
不错的观点 - 但是bash确实可以做这种自动完成,至少如果您正确配置它的话(在发表评论之前我已经测试过了)。 - Keith Thompson
@KeithThompson:为了确保我理解正确——根据我的经验,如果您输入了一个明确的前缀(因此在OP的目录中,“Program\ 10”将自动完成为“Program\ 10.3”),Bash才会自动完成文件名,但它也可以将模糊的前缀延伸到第一个不确定点(因此在OP的目录中,“Progr”将自动完成为“Program\ ”)。您是说Bash可以配置为尝试甚至超过那个点进行自动完成(就像Zsh或Windows中的命令提示符一样)吗? - ruakh
不,你说得对,它只会自动补全无歧义的内容。再次按TAB键会显示匹配名称列表,但你仍然需要开始输入其中一个名称,并且在这种情况下,你需要以某种方式转义空格。正如OP所建议的那样,避免在文件名中使用空格是一个很好的理由。 - Keith Thompson

-2
该命令会返回一个准确的消息,我们只需要阅读错误信息即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接