KISS:keep it short and simple! html
1. 符號:` `
名稱:反引號,上分隔符
位置:反引號(`)這個字符通常在鍵盤的左上角,數字1的左邊,不要將其同單引號(’)混淆
做用:反引號括起來的字符串被shell解釋爲命令行,在執行時,shell首先執行該命令行,並以它的標準輸出結果取代整個反引號(包括兩個反引號)部分
舉例: shell
$ echo `date` Thu Mar 7 21:31:11 CST 2013
2. $()
效果同` ` 工具
3. 命令:xargs
xargs是給命令傳遞參數的一個過濾器,也是組合多個命令的一個工具。它把一個數據流分割爲一些足夠小的塊,以方便過濾器和命令進行處理。一般狀況下,xargs從管道或者stdin中讀取數據,可是它也可以從文件的輸出中讀取數據。xargs的默認命令是echo,這意味着經過管道傳遞給xargs的輸入將會包含換行和空白,不過經過xargs的處理,換行和空白將被空格取代。 spa
$ date | xargs echo Thu Mar 7 21:47:12 CST 2013
管道與xargs的區別: .net
xargs:經過緩衝方式並之前面命令行的輸出做爲參數,隨後的命令調用該參數
若忽略 xargs 的 options 來看的話,
cm1 | xargs cm2
能夠單純當作: cm2 `cm1`
所以, find .... | xargs rm 也可做 rm `find ...` 來處理.
然而, 若 find 的結果太多, 可能會超過rm 可能接受的最大argument數量而失敗.
xargs優勢:因爲是批處理的,因此執行效率比較高(經過緩衝方式)
xargs缺點:有可能因爲參數數量過多(成千上萬),致使後面的命令執行失敗
若換成 find .... -exec rm {} \; 的話,
由於rm 是" 逐個 " item 去處理的, 則無此憂慮
命令行