红联Linux门户
Linux帮助

参数 “-”和不带“-”有没有区别?

发布时间:2009-12-02 10:07:16来源:红联作者:redkx
参数 “-”和不带“-”有没有区别?
举例:#rm -rf test.doc 和#rm rf test.doc这两条命令有没有区别?
我自己试验了下,是有区别的,可是看一些视频教程,人家直接不带参数“-”
命令照样用,不晓得,蹊跷出在了那里!~
文章评论

共有 21 条评论

  1. 于 2013-11-28 16:39:15发表:

    都是

  2. wangyaju1988 于 2009-12-04 21:56:32发表:

    以前还真没有注意过这些问题 一直都是带选项使用的

  3. dchwlinux 于 2009-12-04 21:39:13发表:

    [i=s] 本帖最后由 dchwlinux 于 2009-12-4 21:47 编辑 [/i]

    不用太紧张,按照习惯来说linux的命令都是很好懂的。如果你看man的话,会看到很多option说明都有类似于-h,--help这样的例子。一个杠通常接一个字母的短选项而且可以合写,如rm -rf /usr/local/firefox这里-rf就表示-r和-f,还有一种情况如gcc -o test -lm test.c,这里-l表示要用到第三方的库,后面接的是库名(libm.so),这也是一种合写。而--后面接的通常都是选项的全名,如果全名是由多个单词组成,中间可能用-连接。如编译安装软件时的侦测程序:./configure --prefix=/usr/local --with-confdir=/etc --exec-prefix=EPREFIX (具体程序的具体参数可通过./configure --help查看)。这个就是典型的长参数命令。当然例外是又的。如find命令,一律-。

  4. 思考者 于 2009-12-04 21:13:35发表:

    确实有些有-有些没-,不知道是不是原来没有标准化,统一?

  5. 396886380 于 2009-12-04 19:35:21发表:

    当然有区别!就如楼上讲的,我就不重复了!

  6. otwett 于 2009-12-04 10:29:00发表:

    xue xi

  7. chhao33 于 2009-12-03 18:08:28发表:

    引用:
    群里这么说
    redkx 发表于 2009-12-2 10:18

  8. shampoo 于 2009-12-03 17:12:15发表:

    flag与参数不一样。

    rm -r filename
    filename是参数
    “f”为flag,
    rm --help
    "--help"为flag,

    只要是flag,尽量【多此一举】吧!

  9. shampoo 于 2009-12-03 17:02:36发表:

    引用:
    这个是有简称和全称的参数只分的,一般简称都要加-,全称一般都不要
    jian56568 发表于 2009-12-3 16:29


    呵呵?

  10. jian56568 于 2009-12-03 16:29:32发表:

    这个是有简称和全称的参数只分的,一般简称都要加-,全称一般都不要

  11. acrofox 于 2009-12-03 12:46:26发表:

    tar 又是个一特类,其它特类还有 dd 等。
    一般程序的选项怎么写,可以看看 getopt 的手册。但这只是一般规律,具体到每个程序,还得以它自己的文档为准。
    自己总结规律不是不可以,但不要看到“一”是一横、“二”是两横、“三”是三横,就断定“万”应该是一万横。至少得有一定的数量基础才能谈得上规律。

  12. Pensrce 于 2009-12-03 00:11:41发表:

    坐着听课

  13. 蓝蜻蜓 于 2009-12-02 23:53:39发表:

    3# gzl1100


    我也觉得有点奇怪,理论上你说的是对的

    但如何解释下面的命令:

    tar xzf xxxx.tar.gz
    tar -xzf xxxx.tar.gz

    效果是一样的,按常规来说在linux中命令的选项是有两种的

    - x // 一般用来表示某个选项的简写形式
    --xyz // 则表示选项的完整格式

  14. acrofox 于 2009-12-02 22:16:00发表:

    人家群里说的是 ps,不要简单推广到别的命令。

  15. shampoo 于 2009-12-02 17:07:03发表:

    没有把握就别乱用。

  16. sn01dn05 于 2009-12-02 15:45:56发表:

    {:3_114:}

  17. hantu 于 2009-12-02 13:11:04发表:

    有的命令使用参数时是要有"-"号的,比如 rm -fr abc , 这是要强制删除(即非空目录照样删除) abc 这个文件/文件夹,但如果你写成 rm fr abc 则意思就变了, 它是要删除 fr 和 abc 这两个文件/文件夹,而且也不是强制删除了.

    有的命令其参数就不用前导的"-"号,比如 tar zxvf filename.tar.gz 等.

  18. redkx 于 2009-12-02 11:58:47发表:

    引用:
    应该叫选项,不叫参数。[option]
    如果没有“-”,linux会认为是一个文件,而不是选项。比如:rm rf test.doc和rm -rf test.doc,前面一个事删除rf文件和删除test.doc文档。后一个直接删除test.doc文档。
    gzl1100 发表于 2009-12-2 10:25

    赞同你!~

  19. shiyouming 于 2009-12-02 11:03:08发表:

    同意楼上

  20. gzl1100 于 2009-12-02 10:25:15发表:

    [i=s] 本帖最后由 gzl1100 于 2009-12-2 10:28 编辑 [/i]

    应该叫选项,不叫参数。[option]
    如果没有“-”,linux会认为是一个文件,而不是选项。比如:rm rf test.doc和rm -rf test.doc,前面一个事删除rf文件和删除test.doc文档。后一个直接删除test.doc文档。

  21. redkx 于 2009-12-02 10:18:45发表:

    群里这么说