在Linux中,如果我们想要使用标志运行任何命令,那么我们习惯于使用' - '与他们签约。 例如: tar -xzvf .... tar -czvf .. rm -rf ... 谁能告诉我这有什么意义呢?
答案 0 :(得分:1)
实际上tar太老了......你也不能使用-
(它是罕见的命令之一,只按其位置处理选项,并不总是需要-
在前面)
但它是一个(好的)约定,用于轻松找出什么是选项(改变命令的行为)和什么是“参数”(由命令处理)
通常会使用以下命令启动程序:
program -option -option2 arg1 arg2 arg3 -arg4
并将参数arg1
,arg2
,arg3
和-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