xargs 的妙用

與find一起使用

場景:統計一個源代碼目錄中所有js文件的行數:

find . -type f -name "*.js" -print0 | xargs -0 wc -l

與grep一起使用

場景:刪除匹配文件:

#測試文件:
echo "aaa" > file1
echo "bbb" > file2
echo "aaa" > file3

grep "aaa" file* -lZ | xargs -0 rm

執行後會刪除file1和file3,grep輸出用-Z選項來指定以0值字節作爲終結符文件名(\0),xargs -0 讀取輸入並用0值字節終結符分隔文件名,然後刪除匹配文件,-Z通常和-l結合使用。

與cp一起使用

場景:複製所有圖片文件到 /data/images 目錄下

ls *.jpg | xargs -n1 -I cp {} /data/images

xargs的一個選項-I,使用-I指定一個替換字符串{},這個字符串在xargs擴展時會被替換掉,當-I與xargs結合使用,每一個參數命令都會被執行一次

發佈了205 篇原創文章 · 獲贊 139 · 訪問量 102萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章