首頁  >  問答  >  主體

linux下好像命令-可以不写,譬如tar jxvf ...也可以tar -jxvf ?

linux下好像命令-可以不写,譬如tar jxvf ...也可以tar -jxvf ?

ringa_leeringa_lee2741 天前670

全部回覆(5)我來回復

  • 黄舟

    黄舟2017-04-17 15:28:42

    不可以這樣說,其實是你使用的例子比較特殊而已。
    tar指令的選項中-是可寫可不寫,不使用-效果也是一樣。不過還是推薦使用-,畢竟規範很多。

    給你看一個不能忽略-的實例
    [ioitboy@linux ~]$ ls -ld /
    dr-xr-xr-x. 17 root root 4096 Jul 25 12:29 /
    [ioitboy@linux ~]$ ls ld /
    ls: cannot access ld: No such file or directory
    /:
    bin boot dev etc home lib lib64 media mnt opt proc root runsys sbin s var

    //使用-的第一個指令執行成功了,但是我們發現第二個指令的執行結果完全不一樣而且有一個報錯。
    1,因為沒有寫-,結果bash把ld理解成了一個文件或目錄,給了一個報錯。
    2,因為沒有寫-,結果bash沒有得到使用-ld這個選項的請求。直接給了ls /的輸出,沒有列出/目錄的資訊。

    最後還是推薦多看看man和--help的幫助吧,學習規範的指令書寫方法,可以避免一些意外的執行結果。

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 15:28:42

    沒橫的是bsd的寫法,例如ps aux,可以這麼寫,就是因為ps是從bsd移植過來的

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 15:28:42

    ps指令的起源不是很了解,不過樓主可以看看指令列的選項解析原理
    -的是UNIX風格,不帶的是BSD風格,另外還有GNU風格等等。 。
    可以簡單了解getopt以及getopt_long函數,這兩個函數是支援的是UNIX風格

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-17 15:28:42

    感覺這是個特例吧,你拿其他指令試試看。

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 15:28:42

    只能說有些是可以省的,如tar指令,有的就不能省。這主要看指令是屬於那種風格的。

    回覆
    0
  • 取消回覆