天天看點

xargs應用場景和常見用法

應用場景

  • 傳遞參數,進而組合多個指令
  • 分隔資料,避免參數過長
  • 不支援管道的指令

常見用法

基本是配合有輸出結果多的指令,例如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" ./*`      

參考