linux xargs命令詳解
linux xargs命令詳解
xargs是給命令傳遞參數(shù)的一個(gè)過(guò)濾器,也是組合多個(gè)命令的一個(gè)工具。那么它的具體用途是怎樣的呢?下面由學(xué)習(xí)啦小編為大家整理了linux xargs命令的相關(guān)知識(shí),希望對(duì)大家有幫助。
一、linux xargs命令功能說(shuō)明
xargs是給命令傳遞參數(shù)的一個(gè)過(guò)濾器,也是組合多個(gè)命令的一個(gè)工具。它把一個(gè)數(shù)據(jù)流分割為一些足夠小的塊,以方便過(guò)濾器和命令進(jìn)行處理。通常情況下,xargs從管道或者stdin中讀取數(shù)據(jù),但是它也能夠從文件的輸出中讀取數(shù)據(jù)。xargs的默認(rèn)命令是echo,這意味著通過(guò)管道傳遞給xargs的輸入將會(huì)包含換行和空白,不過(guò)通過(guò)xargs的處理,換行和空白將被空格取代。
二、linux xargs命令實(shí)用例子
1. 當(dāng)你嘗試用rm 刪除太多的文件,你可能得到一個(gè)錯(cuò)誤信息:/bin/rm Argument list too long. 用xargs 去避免這個(gè)問(wèn)題
find ~ -name ‘*.log’ -print0 | xargs -0 rm -f
2. 獲得/etc/ 下所有*.conf 結(jié)尾的文件列表,有幾種不同的方法能得到相同的結(jié)果,下面的例子僅僅是示范怎么實(shí)用xargs ,在這個(gè)例子中實(shí)用 xargs將find 命令的輸出傳遞給ls -l
# find /etc -name "*.conf" | xargs ls –l
3. 假如你有一個(gè)文件包含了很多你希望下載的URL, 你能夠使用xargs 下載所有鏈接
# cat url-list.txt | xargs wget –c
4. 查找所有的jpg 文件,并且壓縮它
# find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz
5. 拷貝所有的圖片文件到一個(gè)外部的硬盤驅(qū)動(dòng)
# ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory