linux中xagrs命令的用法
阿新 • • 發佈:2021-02-19
linux中xagrs命令的用法
什麼是xargs
xargs命令可以從標準輸入中構建並執行命令。通俗一點來說就是,將一個字串中分割出多個子字串作為一個命令的引數,然後執行這個命令。
怎樣使用xargs
預設情況下,xargs從標準輸入中讀取內容,用空格分割字元,然後作為引數去執行一個命令。下面的命令會從建立三個資料夾。
檢視執行的命令
-t
引數會顯示執行的命令,例如:
檢視並確認執行的命令
-p
引數會詢問同意後才會執行命令
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