为什么我们在linux命令标志上加上' - '标志?

时间:2014-03-26 13:58:51

标签: linux command

在Linux中,如果我们想要使用标志运行任何命令,那么我们习惯于使用' - '与他们签约。 例如: tar -xzvf .... tar -czvf .. rm -rf ... 谁能告诉我这有什么意义呢?

2 个答案:

答案 0 :(得分:1)

实际上tar太老了......你也不能使用-(它是罕见的命令之一,只按其位置处理选项,并不总是需要-在前面)

但它是一个(好的)约定,用于轻松找出什么是选项(改变命令的行为)和什么是“参数”(由命令处理)

通常会使用以下命令启动程序:

program -option -option2 arg1  arg2 arg3 -arg4

并将参数arg1arg2arg3-arg4作为参数与程序一起处理(也包括选项和选项2引起的更改)(请注意一旦遇到不以-开头的条目,“处理事物作为选项”就会停止,因此-arg4也被视为参数,而不是选项!)

但在现实生活中,要知道什么是选项并不总是很容易:如果要删除名为-something的文件,请尝试

rm -something

rm会抱怨它无法识别某些选项(哪些选项取决于你的rm!),并且还可以抱怨没有参数(即没有要删除的文件名)

在这种情况下,你需要:

rm ./-something

以便参数不再以-开头(现在以./-开头)

(对于某些命令,您也可以使用--将选项与其他命令分开:一旦那些(并且只有那些)程序遇到--,他们会将其余部分视为参数而不是选项。所以你也可以这样做:rm -- -something ......但它不太便携!)

注意:

  • 较旧的程序只使用1个字符选项(例如:rm -v -i something),而一些不太旧的程序允许您将它们“连接”成一个(例如:rm -vi something)。 。

  • 较新的程序通常也支持“更长的选项”,通常使用--代替-来区分“长名称选项”和“多个小选项的连接”:例如: rm --help

答案 1 :(得分:0)

表示程序的参数。 e.g。

tar -x -z -v -f /dir/file

,其中/ dir / file是-f开关的值,所以没有" - "为了它。

某些程序允许将选项合并为

tar -xzvf /dir/file

某些程序(如tar)允许您省略它:

tar xzvf /dir/file