Linux命令行参数前加双杠--,单杠-和不加杠-的区别

昨晚用命令压缩一个视频,但是我压缩的文件不能上传,同事压缩的就可以上传。

我使用的命令是:tar cvf xxx.tar yyy.mp4 

同事的是:tar -cvf xxx.tar yyy.mp4

原来是不同的Linux风格导致的:https://blog.csdn.net/FX677588/article/details/76648612

《Linux命令行参数前加双杠--,单杠-和不加杠-的区别》

1 双杠与单杠的区别

  首先我们来看看一些实例来帮助我们理解,如下:

rm -vf ***

tar -xzvf  ***.tar.gz

gcc --version

rm --help

  从上面命令我们可以看出,绝大数命令有以下的规则:

  ① 参数前单杠的表明后面的参数是字符形式;

  ② 参数前双杠的则表明后面的参数是单词形式。

2 加杠与不加杠的区别

  首先还是一样,我们看两个小样例:

tar xzvf  ***.tar.gz

tar -xzvf ***.tar.gz

  两种命令行都是行的通的,并且功能都是解压软件包,那它们到底有什么不同呢,实际上这就涉及两种Linux风格,System V和BSD。它们对应关系如下:

  ① 参数前有横的是System V风格。

  ② 参数前没有横的是BSD风格。

  System V和BSD两种风格的区别主要是:

  系统启动过程中 kernel 最后一步调用的是 init 程序,init 程序的执行有两种风格,即 System V 和 BSD。

  System V 风格中 init 调用 /etc/inittab,BSD 风格调用 /etc/rc,它们的目的相同,都是根据 runlevel 执行一系列的程序。