應用場景
- 傳遞參數,進而組合多個指令
- 分隔資料,避免參數過長
- 不支援管道的指令
常見用法
基本是配合有輸出結果多的指令,例如find、ls
查找所有的jpg 檔案并壓縮
find . -name *.png -type f -print | xargs tar -cvzf images.tar.gz
删除查找到的日志
find ~ -name *.log -print0 | xargs -0 rm -f
查找目前目錄下所有使用者具有讀寫執行權限的檔案,并收回寫權限:
find . -perm -7 -print | xargs chmod o-w
拷貝所有的圖檔檔案到一個外部的硬碟驅動
ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory
批量下載下傳
cat urls.txt | xargs wget
批量查找并替換文本
grep -rl "test" --include="*.txt" ./* | xargs sed -i s/test/1234/g
sed -i s/test/1234/g `grep "test" -rl --include="*.txt" ./*`