不明白以下错误:'mkdir: invalid option -- '/'

Jon*_*087 1 command-line

我正在学习一本书中的教程,并且正在尝试安装 Oracle JDK 8。

我打开了一个终端并在美元提示后输入以下命令:

sudo mkdir -p/usr/lib/jvm/
Run Code Online (Sandbox Code Playgroud)

但是,它向我抛出以下错误:

mkdir: 无效选项 -- '/'

我究竟做错了什么?

Rin*_*ind 8

后面需要有一个空格-p,所以..

sudo mkdir -p /usr/lib/jvm/
Run Code Online (Sandbox Code Playgroud)


Has*_*tur 5

您应该在目录名称之前的选项 e 后面写一个空格

sudo mkdir -p    /usr/lib/jvm/
Run Code Online (Sandbox Code Playgroud)

关于选项和空间使用的一些话。

通常,选项后空格的使用取决于命令和您打算使用的选项。每次你都必须阅读命令的概要。在这种情况下,您可以使用man mkdir.

SYNOPSIS  
     mkdir [OPTION]... DIRECTORY...  

DESCRIPTION
...
       -m, --mode=MODE  
             set file mode (as in chmod), not a=rwx - umask  
       -p, --parents
             no error if existing, make parent directories as needed

...
Run Code Online (Sandbox Code Playgroud)

如果选项写有空格,则必须使用 option 和 option_argument 之间的空格。如果它不存在,您就不必使用它。您可以查看下面的标准链接以获取完整的规则和例外列表。

此外,在同一个命令中,您可以有两种或多种不同的方式来调用相同的操作。
因此,对于具有相同命令的另一个选项,您可以执行

mkdir A  -m a+x
mkdir A --mode=a+x
Run Code Online (Sandbox Code Playgroud)

这些命令是等效的并产生相同的效果,但在第一种情况下您需要空间,而第二种情况则不需要。

笔记:

  • 选项-p--parents不需要参数,但必须与要创建的目录的名称分开。

参考资料:
如果有兴趣,您可以阅读这些标准IEEE Std 1003.1-2001 12.1.2GNU Getopt 中的更多内容