linux下好像命令-可以不写,譬如tar jxvf ...也可以tar -jxvf ?
ringa_lee
不可以這樣說,其實是你使用的例子比較特殊而已。 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的幫助吧,學習規範的指令書寫方法,可以避免一些意外的執行結果。
沒橫的是bsd的寫法,例如ps aux,可以這麼寫,就是因為ps是從bsd移植過來的
對ps指令的起源不是很了解,不過樓主可以看看指令列的選項解析原理有-的是UNIX風格,不帶的是BSD風格,另外還有GNU風格等等。 。 可以簡單了解getopt以及getopt_long函數,這兩個函數是支援的是UNIX風格
ps
-
getopt
getopt_long
感覺這是個特例吧,你拿其他指令試試看。
只能說有些是可以省的,如tar指令,有的就不能省。這主要看指令是屬於那種風格的。
不可以這樣說,其實是你使用的例子比較特殊而已。
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的幫助吧,學習規範的指令書寫方法,可以避免一些意外的執行結果。
沒橫的是bsd的寫法,例如ps aux,可以這麼寫,就是因為ps是從bsd移植過來的
對
ps
指令的起源不是很了解,不過樓主可以看看指令列的選項解析原理有
-
的是UNIX風格,不帶的是BSD風格,另外還有GNU風格等等。 。可以簡單了解
getopt
以及getopt_long
函數,這兩個函數是支援的是UNIX風格感覺這是個特例吧,你拿其他指令試試看。
只能說有些是可以省的,如tar指令,有的就不能省。這主要看指令是屬於那種風格的。