使用命令 cd.. 和 cd. 时出错。在终端

dsm*_*nic 8 command-line bash cd-command

我尝试使用命令cd..cd.在终端中从我当前的文件夹移动到前一个文件夹,它向我显示一条消息,该命令不存在...

可能是什么问题?我正在使用 Ubuntu 18.04 LTS。

0x2*_*fa0 17

您需要在命令 ( cd) 和参数(您想要去的路径)之间添加一个空格。

在您的情况下,您应该使用cd ..代替cd..

另外,请注意之前的文件夹目录与父目录不同。我鼓励您查看此答案以获取有关 Linux 中目录导航基础知识的更多信息。

  • 在链接的答案和这里都没有提到的一件事是,进入“上一个文件夹”的方法是“cd -”。 (5认同)
  • 就像 [Linux 人喜欢坚持使用“目录”](https://chat.stackexchange.com/transcript/message/44007164#44007164) 一样,将术语“文件夹”用于目录并没有错,不仅因为在大多数上下文它们是可互换的术语(请注意,像 nautilus 这样的 Linux 文件管理程序使用后者(上下文菜单提供*创建文件夹*))而且因为在技术用途中,文件夹可能并不总是一个目录,[目录将始终是一个文件夹](https://chat.stackexchange.com/transcript/message/44007185#44007185)。 (5认同)
  • @Zanna,我通常不太容易争论这些常见且看似毫无成效的语义和/或历史圣战。但是,我认为“文件夹”是一个广泛使用的术语,读者更容易掌握,即使此处可以使用“目录”具有相同(或更精确)的含义。这让我想起了 [一个旧答案](https://askubuntu.com/a/626731/387382),在其中我了解到在 Kernel Ext4 文档中,这种类型的 inode 称为目录。 (2认同)

Luk*_* G. 6

试试这个来拯救你的理智:

alias cd..='cd ..'
Run Code Online (Sandbox Code Playgroud)

现在,您可以在有空格或没有空格的情况下输入它,它仍然可以工作。

说明:Windows 和 MS-DOS 允许您键入 CD.. 将目录更改为比您当前的目录高一级。某些命令内置于这些系统上的命令解释器中。Linux(可能还有其他 *nixes)会查找后跟参数的程序,而将程序和参数分开的唯一方法是使用空格。因此,Linux 只能看到一个名为 'cd..' 的命令,并且找不到它的可执行文件。您的意思是“cd ..”(cd => 程序,.. => 参数)。

我的解决方案为 'cd..' 添加了一个别名,这样当您在命令行中键入该别名时,系统将改为运行 'cd ..'(带空格)。请参阅此答案的其他评论以了解有关将其添加为永久别名的信息。

  • 很好 :) 您可以通过添加到`.bashrc`来添加如何使其永久化 (3认同)
  • +1 别名是最好的。我还使用`kk`和`öö`作为`ll`的别名;-)和`yoda`作为`sudo`的别名:-D (2认同)
  • 虽然这是一个有趣的解决方法,但我认为通过提供更复杂的命令来跳过基本命令为什么不起作用的解释并不是一个好主意,但仍然没有解释。 (2认同)
  • `cd` 也是 unix shell 上的内置命令——但是内置命令遵循与外部命令相同的语法,它们没有自己的规则:) (2认同)