linux系統(tǒng)中xargs命令的使用方式是什么-創(chuàng)新互聯(lián)

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)linux系統(tǒng)中xargs命令的使用方式是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)公司主營滄州網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā),滄州h5微信小程序搭建,滄州網(wǎng)站營銷推廣歡迎滄州等地區(qū)企業(yè)咨詢
xargs 是給 命令傳遞參數(shù)的一個過濾器,可以將管道或標準輸入的數(shù)據(jù)轉(zhuǎn)換成參數(shù),默認的 命令是 echo,這意味著通過管道傳遞給 xargs 的輸入將會包含換行,不過通過 xargs 的處理,換行將被空格取代。

如何使用xargs命令

語法:

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

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

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

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

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

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

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

如何運行多個命令

要使用xargs運行多個命令,請使用-i或者-I選項。在-i或者-I后面自定義一個傳遞參數(shù)符號,所有匹配的項都會替換為傳遞給xargs的參數(shù)。

下面例子時xargs運行兩條命令,先touch創(chuàng)建文件,然后ls列出來:

[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

如何指定一個分隔符

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

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

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

如何從文件中讀取條目

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

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

使用-L 1選項,該選項表示xargs一次讀取一行。如果省略此選項,xargs將把所有ip傳遞給一個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對這些文件執(zhí)行操作。

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

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

[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)鍵是由于很多命令不支持管道符來傳遞參數(shù),xargs可以解決這個問題,而且使用起來很方便,跟能強大。

上述就是小編為大家分享的linux系統(tǒng)中xargs命令的使用方式是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

網(wǎng)站題目:linux系統(tǒng)中xargs命令的使用方式是什么-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://m.kartarina.com/article0/cddgio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化微信公眾號標簽優(yōu)化網(wǎng)站內(nèi)鏈App設(shè)計品牌網(wǎng)站設(shè)計

廣告

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

營銷型網(wǎng)站建設(shè)
主站蜘蛛池模板: 亚洲日韩VA无码中文字幕| 人妻无码αv中文字幕久久 | 日韩AV无码久久一区二区| 日韩免费无码一区二区三区 | 嫩草影院无码av| 国产成年无码久久久久毛片| av区无码字幕中文色| 精品无码三级在线观看视频| 亚洲AV无码一区二区三区人| 少妇无码AV无码一区| 东京热一精品无码AV| 精品无码人妻一区二区三区| 免费无码AV一区二区| 亚洲性无码一区二区三区| 免费无码黄动漫在线观看| 日韩人妻无码精品系列| 无码人妻丰满熟妇片毛片 | 国产成人无码av片在线观看不卡| 国产精品多人p群无码| 国产成人无码午夜视频在线观看 | 亚洲VA成无码人在线观看天堂| 无码中文av有码中文av| 亚洲AV无码专区亚洲AV伊甸园| aⅴ一区二区三区无卡无码| 性生交片免费无码看人| 十八禁无码免费网站| 中国无码人妻丰满熟妇啪啪软件| 人妻丰满?V无码久久不卡| 亚洲AV综合永久无码精品天堂| 久久人妻内射无码一区三区| 亚洲va中文字幕无码久久不卡| 中文成人无码精品久久久不卡| 天堂一区人妻无码| 加勒比无码一区二区三区| 亚洲中文字幕久久精品无码VA| 成人免费午夜无码视频| 人妻少妇精品无码专区| 无码人妻一区二区三区兔费| 国产成人无码免费视频97| 色欲aⅴ亚洲情无码AV| 久久久久亚洲AV无码专区桃色|