1. 程式人生 > 其它 >linux中xagrs命令的用法

linux中xagrs命令的用法

技術標籤:linuxlinuxshell

linux中xagrs命令的用法

什麼是xargs

xargs命令可以從標準輸入中構建並執行命令。通俗一點來說就是,將一個字串中分割出多個子字串作為一個命令的引數,然後執行這個命令。

怎樣使用xargs

預設情況下,xargs從標準輸入中讀取內容,用空格分割字元,然後作為引數去執行一個命令。下面的命令會從建立三個資料夾。
建立資料夾

檢視執行的命令

-t引數會顯示執行的命令,例如:
view executed commands

檢視並確認執行的命令

-p引數會詢問同意後才會執行命令
How to view the command and prompt for execution

xargs和find命令配合使用

find和xargs一起使用的含義是,通過find查詢特定的檔案,並對查詢的結果進行一些操作,例如改檔案的許可權,移動檔案等等。下面的命令是查詢/tmp目錄下早於兩週前的檔案並刪除:
find /tmp -mtime +14 | xargs rm

xargs vs exec

find命令中有個-exec引數可以支援在查詢的檔案中進行任意的操作,如下的兩個命令是等價的:

find ./foo -type f -name "*.txt" -exec rm {} \; 
find ./foo -type f -name "*.txt"
| xargs rm

建議使用xargs,效率更高

一次執行多個命令

之前都是將引數傳遞給一個命令執行,那麼可以不可以將多個引數分別傳遞給同一個命令去處理呢?通過-I引數實現,在引數後指定一個替換符號,xargs命令會將每個替換符號替換成引數後分別執行,下面就是呼叫三次mkdir命令建立三個檔案夾了:

cat foo.txt
one
two
three

cat foo.txt | xargs -I % sh -c 'echo %; mkdir %'
one 
two
three

ls 
one two three

原文地址