linux中xargs命令的用法-創(chuàng)新互聯(lián)

這篇文章主要介紹“l(fā)inux中xargs命令的用法”,在日常操作中,相信很多人在linux中xargs命令的用法問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”linux中xargs命令的用法”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

西藏網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站開(kāi)發(fā)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

如何使用xargs命令

語(yǔ)法:

xargs [OPTIONS] [COMMAND [initial-arguments]]

舉一個(gè)例子:我們用管道符傳輸?shù)絰args,并為每個(gè)參數(shù)運(yùn)行touch命令,-t表示在執(zhí)行之前先打印,創(chuàng)建三個(gè)文件:

[root@localhost ~]# echo "file1 file2 file3"|xargs -t touch
touch file1 file2 file3

如何限制參數(shù)的數(shù)量

默認(rèn)情況下,傳遞給命令的參數(shù)數(shù)量由系統(tǒng)限制決定。-n選項(xiàng)指定要傳遞給命令的參數(shù)個(gè)數(shù)。xargs根據(jù)需要多次運(yùn)行指定的命令,直到所有參數(shù)都用完為止。

下面例子指定每次傳遞一個(gè)參數(shù):

[root@localhost ~]# echo "file1 file2 file3"|xargs -n1 -t touch
touch file1 
touch file2 
touch file3

如何運(yùn)行多個(gè)命令

要使用xargs運(yùn)行多個(gè)命令,請(qǐng)使用-i或者-I選項(xiàng)。在-i或者-I后面自定義一個(gè)傳遞參數(shù)符號(hào),所有匹配的項(xiàng)都會(huì)替換為傳遞給xargs的參數(shù)。

下面例子時(shí)xargs運(yùn)行兩條命令,先touch創(chuàng)建文件,然后ls列出來(lái):

[root@localhost ~]# echo "file1 file2 file3"|xargs -t -I % sh -c 'touch %;ls -l %'
sh -c touch file1 file2 file3;ls -l file1 file2 file3 
-rw-r--r--. 1 root root 0 Jan 30 00:18 file1
-rw-r--r--. 1 root root 0 Jan 30 00:18 file2
-rw-r--r--. 1 root root 0 Jan 30 00:18 file3

如何指定一個(gè)分隔符

使用-d或者--delimiter選項(xiàng)設(shè)置自定義分隔符,可以是單個(gè)字符,也可以是以\ 開(kāi)頭的轉(zhuǎn)義字符。

下面例子使用#做分隔符,echo命令使用了-n選項(xiàng),意思是不輸出新行:

[root@localhost ~]# echo -n file1#file2#file3#file4|xargs -d \# -t touch
touch file1 file2 file3 file4

如何從文件中讀取條目

xargs命令還可以從文件讀取條目,而不是從標(biāo)準(zhǔn)輸入讀取條目。使用-a選項(xiàng),后跟文件名。
創(chuàng)建一個(gè)ip.txt的文件,一會(huì)使用xargs命令ping里面的每一個(gè)地址:

[root@localhost ~]# cat ip.txt 
114.114.114.114
www.linuxprobe.com
202.102.128.68

使用-L 1選項(xiàng),該選項(xiàng)表示xargs一次讀取一行。如果省略此選項(xiàng),xargs將把所有ip傳遞給一個(gè)ping命令。

[root@localhost ~]# xargs -a ip.txt -t -L 1 ping -c 1
ping -c 1 114.114.114.114 
PING 114.114.114.114 (114.114.114.114) 56(84) bytes of data.
64 bytes from 114.114.114.114: icmp_seq=1 ttl=93 time=11.0 ms
--- 114.114.114.114 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 11.026/11.026/11.026/0.000 ms
ping -c 1 www.linuxprobe.com 
PING www.linuxprobe.com.w.kunlunno.com (221.15.65.202) 56(84) bytes of data.
64 bytes from hn.kd.jz.adsl (221.15.65.202): icmp_seq=1 ttl=48 time=20.9 ms
--- www.linuxprobe.com.w.kunlunno.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 20.934/20.934/20.934/0.000 ms
ping -c 1 202.102.128.68 
PING 202.102.128.68 (202.102.128.68) 56(84) bytes of data.
64 bytes from 202.102.128.68: icmp_seq=1 ttl=83 time=8.71 ms
--- 202.102.128.68 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 8.710/8.710/8.710/0.000 ms

xargs與find一起使用

xargs通常與find命令結(jié)合使用。您可以使用find搜索特定文件,然后使用xargs對(duì)這些文件執(zhí)行操作。

若要避免包含換行符或其他特殊字符的文件名出現(xiàn)問(wèn)題,請(qǐng)始終使用find的-print0選項(xiàng),這樣可以使find打印完整的文件名,配合x(chóng)args命令使用-0或者--null選項(xiàng)可以正確的解釋。

下面例子中,查找log文件夾下面的類型為file的所有文件,打包壓縮起來(lái):

[root@localhost ~]# find log/ -type f -print0|xargs --null tar -zcvf logs.tar.gz
log/anaconda/anaconda.log
log/anaconda/syslog
log/anaconda/program.log
log/anaconda/packaging.log
log/anaconda/storage.log
log/anaconda/ifcfg.log
log/anaconda/ks-script-TOLvJc.log
log/anaconda/ks-script-VRY9yQ.log
log/anaconda/ks-script-pjDijm.log
log/anaconda/journal.log
log/audit/audit.log
log/boot.log
log/boot.log-20200126
log/btmp
log/btmp-20200126
…
[root@localhost ~]# ll
total 604
-rw-------. 1 root root   1285 Dec 21 17:19 anaconda-ks.cfg
drwxr-xr-x. 8 root root   4096 Jan 29 23:02 log
-rw-r--r--. 1 root root 607566 Jan 30 00:58 logs.tar.gz

到此,關(guān)于“l(fā)inux中xargs命令的用法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

分享題目:linux中xargs命令的用法-創(chuàng)新互聯(lián)
地址分享:http://muchs.cn/article12/deehgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站搜索引擎優(yōu)化、網(wǎng)站營(yíng)銷、小程序開(kāi)發(fā)、定制網(wǎng)站、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)