我正在学习一本书中的教程,并且正在尝试安装 Oracle JDK 8。
我打开了一个终端并在美元提示后输入以下命令:
sudo mkdir -p/usr/lib/jvm/
Run Code Online (Sandbox Code Playgroud)
但是,它向我抛出以下错误:
mkdir: 无效选项 -- '/'
我究竟做错了什么?
您应该在目录名称之前的选项 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.2和GNU Getopt 中的更多内容。