三天以来,我正在学习与Docker合作。
在此期间,我执行了以下命令
sudo docker run --rm -ti --net=example --name server ubuntu:14.04 bash
和
nc -lp 1234
我想知道为什么有时必须使用
-
,而对于其他命令则使用--
有逻辑吗?关于我的问题的主题:我知道这不是一个好话题。我对此感到抱歉。这个问题是在使用Docker时发生的,但我不知道
-
或--
主题是否更是终端或Docker主题。
最佳答案
这取决于命令。有约定,但没有一个是普遍遵循的。
在过去,选项是单个字母。如果一个选项带有一个参数,则它可以跟在选项字母后面,中间可以有空格,也可以不带空格(command -x foo
或command -xfoo
)。
不带参数的选项可以 bundle 在一起,因此command -x -y
可以写为command -xy
。对于许多命令,甚至可以 bundle 确实带有参数的选项,最后指定的选项带有参数:command -x -y foo
与command -xy foo
。您问题中的nc -lp 1234
就是一个例子。 l
和p
是两个不同的选项。那也可以写成nc -l -p 1234
。
来自GNU项目的命令通常可以接受传统的短格式和长格式的选项,其中选项名称是一个完整的单词,只要缩写是唯一的即可。例如,ls
具有-F
选项,可将/
附加到目录名称等等。 Gnu ls
可以将其指定为--classify
或缩写为--cl
。为了避免歧义并向后兼容,旧式的单字母选项使用单个-
,长格式的选项使用--
。
最后,某些命令采用由单个-
引入的长名称选项; find
命令就是一个例子。
唯一真正的解决方案是阅读您正在运行的特定命令的手册页。
关于bash - 终端(bash?)/Docker:背后的逻辑-和-,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42753103/