xargs的用法

xargs命令的作用是將參數(shù)列表轉(zhuǎn)換成小塊分段傳遞給其他命令,以避免參數(shù)列表過(guò)長(zhǎng)的問(wèn)題。一般與管道符搭配使用,xargs的默認(rèn)動(dòng)作是echo,默認(rèn)分隔符為空白字符(空格,TAB,換行符)。

參數(shù)選項(xiàng)

-0,--null:以\0作為分隔符,接受到的特殊字符將當(dāng)作文本符號(hào)處理;
-d:指定分段的分隔符,默認(rèn)分隔字符為空白字符;
-a,--arg-file=file:指定命令標(biāo)準(zhǔn)輸入的來(lái)源文件;
-e'FLAG' 或者-E 'FLAG':指定一個(gè)終止符號(hào),當(dāng)xargs命令匹配到第一個(gè)FLAG后,停止傳遞,并退出命令;
-p:每當(dāng)xargs執(zhí)行一個(gè)分段時(shí),詢(xún)問(wèn)一次用戶(hù)是否執(zhí)行;
-t:表示先打印執(zhí)行的命令再輸出;
-n NUM:表示一個(gè)分段包含的參數(shù)個(gè)數(shù),參數(shù)之間以分隔符隔開(kāi),默認(rèn)是將所有的參數(shù)當(dāng)作一個(gè)分段輸出;
-i:用于將分段分批傳遞給其后的{}進(jìn)行輸出,分段會(huì)替換{}所在的位置進(jìn)行輸出;
-I "FLAG":可指定分段的替換符號(hào),分段會(huì)分批替換到符號(hào)所在的位置進(jìn)行輸出執(zhí)行;
-L:指定每次執(zhí)行的最大的非空行的行數(shù);

xargs命令與管道符的區(qū)別

管道符“|” 是將\color{red}{前一個(gè)命令的標(biāo)準(zhǔn)輸出}作為\color{red}{后一個(gè)命令的標(biāo)準(zhǔn)輸入}來(lái)使用;而xargs命令是將\color{red}{前一個(gè)命令的標(biāo)準(zhǔn)輸出}作為\color{red}{后一個(gè)命令的參數(shù)}而使用;

常用選項(xiàng)

1. -I

$cat foo.txt 
one
two
three
$cat foo.txt | xargs -I file sh -c 'echo file; mkdir file'
one
two
three

2. -i

cat foo.txt | xargs -i touch {}.txt
$ls
foo.txt  one.txt  three.txt  two.txt
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容