青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 297,  comments - 15,  trackbacks - 0

xargs
大多數(shù) Linux 命令都會(huì)產(chǎn)生輸出:文件列表、字符串列表等。但如果要使用其他某個(gè)命令并將前一個(gè)命令的輸出作為參數(shù)該怎么辦?例 如,file 命令顯示文件類型(可執(zhí)行文件、ascii 文本等);您可以處理輸出,使其僅顯示文件名,現(xiàn)在您希望將這些名稱傳遞給 ls -l 命令以查看時(shí)間戳記。xargs 命令就是用來完成此項(xiàng)工作的。它允許您對(duì)輸出執(zhí)行其他某些命令。記住下面這個(gè)來自于第 1 部分中的語法:

file -Lz * | grep ASCII | cut -d":" -f1 | xargs ls -ltr

讓我們來剖析這個(gè)命令字符串。第一個(gè),file -Lz *,用于查找是符號(hào)鏈接或者經(jīng)過壓縮的文件。它將輸出傳遞給下一個(gè)命令 grep ASCII,該命令在其中搜索 "ASCII" 字符串并產(chǎn)生如下所示的輸出:
alert_DBA102.log:        ASCII English text
alert_DBA102.log.Z:      ASCII text (compress'd data 16 bits)
dba102_asmb_12307.trc.Z: ASCII English text (compress'd data 16 bits)
dba102_asmb_20653.trc.Z: ASCII English text (compress'd data 16 bits)

由于我們只對(duì)文件名感興趣,因此我們應(yīng)用下一個(gè)命令 cut -d":" -f1,僅顯示第一個(gè)字段:
alert_DBA102.log
alert_DBA102.log.Z
dba102_asmb_12307.trc.Z
dba102_asmb_20653.trc.Z

現(xiàn)在,我們希望使用 ls -l 命令,將上述列表作為參數(shù)進(jìn)行傳遞,一次傳遞一個(gè)。xargs 命令允許您這樣做。最后一部分,xargs ls -ltr,用于接收輸出并對(duì)其執(zhí)行 ls -ltr 命令,如下所示:

ls -ltr alert_DBA102.log
ls -ltr alert_DBA102.log.Z
ls -ltr dba102_asmb_12307.trc.Z
ls -ltr dba102_asmb_20653.trc.Z

因此,xargs 本身雖然沒有多大用處,但在與其他命令相結(jié)合時(shí),它的功能非常強(qiáng)大。

下面是另一個(gè)示例,我們希望計(jì)算這些文件中的行數(shù):

$ file * | grep ASCII | cut -d":" -f1 | xargs wc -l
47853 alert_DBA102.log
     19 dba102_cjq0_14493.trc
29053 dba102_mmnl_14497.trc
    154 dba102_reco_14491.trc
     43 dba102_rvwr_14518.trc
77122 total

(注:上述任務(wù)還可用以下命令完成:)

$ wc -l ‘file * | grep ASCII | cut -d":" -f1 | grep ASCII | cut -d":" -f1‘

該 xargs 版本用于闡釋概念。Linux 可以用幾種方法來完成同一個(gè)任務(wù);請(qǐng)使用最適合您的情況的方法。

使用該方法,您可以快速重命名目錄中的文件。

$ ls | xargs -t -i mv {} {}.bak

-i 選項(xiàng)告訴 xargs 用每項(xiàng)的名稱替換 {}。-t 選項(xiàng)指示 xargs 先打印命令,然后再執(zhí)行。

另一個(gè)非常有用的操作是當(dāng)您使用 vi 打開要編輯的文件時(shí):

$ file * | grep ASCII | cut -d":" -f1 | xargs vi

該命令使用 vi 逐個(gè)打開文件。當(dāng)您希望搜索多個(gè)文件并打開它們進(jìn)行編輯時(shí),使用該命令非常方便。

它還有幾個(gè)選項(xiàng)。最有用的可能是 -p 選項(xiàng),它使操作具有可交互性:

$ file * | grep ASCII | cut -d":" -f1 | xargs -p vi
vi alert_DBA102.log dba102_cjq0_14493.trc dba102_mmnl_14497.trc   dba102_reco_14491.trc dba102_rvwr_14518.trc ?...

此處的 xarg 要求您在運(yùn)行每個(gè)命令之前進(jìn)行確認(rèn)。如果您按下 "y",則執(zhí)行命令。當(dāng)您對(duì)文件進(jìn)行某些可能有破壞且不可恢復(fù)的操作(如刪除或覆蓋)時(shí),您會(huì)發(fā)現(xiàn)該選項(xiàng)非常有用。

-t 選項(xiàng)使用一個(gè)詳細(xì)模式;它顯示要運(yùn)行的命令,是調(diào)試過程中一個(gè)非常有幫助的選項(xiàng)。

如果傳遞給 xargs 的輸出為空怎么辦?考慮以下命令:

$ file * | grep SSSSSS | cut -d":" -f1 | xargs -t wc -l
wc -l
            0
$

在此處,搜索 "SSSSSS" 后沒有匹配的內(nèi)容;因此 xargs 的輸入均為空,如第二行所示(由于我們使用 -t 這個(gè)詳細(xì)選項(xiàng)而產(chǎn)生的結(jié)果)。雖然這可能會(huì)有所幫助,但在某些情況下,如果沒有要處理的內(nèi)容,您可能希望停止 xargs;如果是這樣,可以使用 -r 選項(xiàng):
$ file * | grep SSSSSS | cut -d":" -f1 | xargs -t -r wc -l
$

如果沒有要運(yùn)行的內(nèi)容,該命令退出。

假設(shè)您希望使用 rm 命令(該命令將作為 xargs 命令的參數(shù))刪除文件。然而,rm 只能接受有限數(shù)量的參數(shù)。如果您的參數(shù)列表超出該限制怎么辦?xargs 的 -n 選項(xiàng)限制單個(gè)命令行的參數(shù)個(gè)數(shù)。

下面顯示了如何限制每個(gè)命令行僅使用兩個(gè)參數(shù):即使向 xargs ls -ltr 傳遞五個(gè)文件,但每次向 ls -ltr 僅傳遞兩個(gè)文件。

$ file * | grep ASCII | cut -d":" -f1 | xargs -t -n2 ls -ltr
ls -ltr alert_DBA102.log dba102_cjq0_14493.trc
-rw-r-----    1 oracle   dba           738 Aug 10 19:18 dba102_cjq0_14493.trc
-rw-r--r--    1 oracle   dba       2410225 Aug 13 05:31 alert_DBA102.log
ls -ltr dba102_mmnl_14497.trc dba102_reco_14491.trc
-rw-r-----    1 oracle   dba       5386163 Aug 10 17:55 dba102_mmnl_14497.trc
-rw-r-----    1 oracle   dba          6808 Aug 13 05:21 dba102_reco_14491.trc
ls -ltr dba102_rvwr_14518.trc
-rw-r-----    1 oracle   dba          2087 Aug 10 04:30 dba102_rvwr_14518.trc

使用該方法,您可以快速重命名目錄中的文件。

$ ls | xargs -t -i mv {} {}.bak

-i 選項(xiàng)告訴 xargs 用每項(xiàng)的名稱替換 {}。


我 需要將一個(gè)用.svn管理的項(xiàng)目改成由CVS來管理,因此,在導(dǎo)入整個(gè)項(xiàng)目到CVS中之前,我需要?jiǎng)h除所有目錄下以及子孫目錄下的.svn目錄及.svn 目錄下的的子目錄和文件。我一直尋找一種最簡(jiǎn)單的方法,最后寫了一個(gè)程序去干這事情。結(jié)果同事告訴我只需要一條指令就可以了:
find -name '.svn' |xargs rm -rf
這個(gè)教訓(xùn)非常慘重,我一生討厭傻瓜,可那一刻發(fā)現(xiàn)自己是最大的傻瓜!

是的,雖然我們——至少是我,天天使用LINUX但是真的是在高效的使用這個(gè)系統(tǒng)嗎?不,很多時(shí)候并沒有花時(shí)間去研究它,使用一些固有愚蠢的方式和思維模式在使用這個(gè)系統(tǒng)。

1. 建立多級(jí)目錄:

mkidr 指令用來建立目錄,事實(shí)上,我們一直都是這么干的。但是在這么使用的時(shí)候我們并沒有去看它的那些參數(shù)提供了哪些額外的功能.

mkidr -p /share/dragon   ; 在根目錄下建立share目錄,并在/share目錄下建立dragon目錄。
mkdir -p guicmd/{bin,lib,src,share/version,doc/{html,pdf,info,man}}
;用來建立一個(gè)復(fù)雜的項(xiàng)目目錄樹。

2.find 配合xargs使用:

find -name '.svn' |xargs rm -rf ;這個(gè)不用說了,就是我前面提到的。
xargs更加象一個(gè)篩選器,將符合管道傳遞過來的文件名的內(nèi)容一并處理掉,這是一個(gè)極度高效的方法。



from: http://m.shnenglu.com/prayer/archive/2009/11/17/90188.html#101210

posted on 2010-02-17 04:11 chatler 閱讀(406) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Shell
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺這個(gè)博客還是不錯(cuò),雖然做的東西和我不大相關(guān),覺得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产原创一区二区| 亚洲欧美日韩网| 一区二区三区回区在观看免费视频| 国产欧美va欧美va香蕉在| 欧美午夜电影一区| 欧美成在线视频| 欧美成人蜜桃| 欧美激情精品久久久久久黑人| 嫩草伊人久久精品少妇av杨幂| 美女露胸一区二区三区| 蜜臀va亚洲va欧美va天堂| 久久一区二区三区国产精品| 蜜桃视频一区| 在线视频欧美日韩精品| 香蕉久久久久久久av网站| 久久久噜噜噜久噜久久| 欧美成人一区二区三区在线观看 | 午夜精品美女久久久久av福利| 亚洲欧美日韩综合aⅴ视频| 欧美一二三视频| 看欧美日韩国产| 亚洲精品久久久久久一区二区| 99热免费精品在线观看| 欧美亚洲综合在线| 欧美精品久久久久a| 国产午夜精品麻豆| 亚洲精品国产日韩| 久久高清福利视频| 亚洲精品久久久久久久久久久久久| 亚洲午夜一区二区三区| 免播放器亚洲一区| 国产老女人精品毛片久久| 亚洲欧洲综合另类在线| 久久成人免费网| 9l视频自拍蝌蚪9l视频成人| 久久精彩视频| 国产精品入口尤物| 99re66热这里只有精品4| 久久这里有精品15一区二区三区 | 亚洲国产婷婷香蕉久久久久久| 一区二区三区国产在线| 亚洲欧美日韩精品综合在线观看| 亚洲电影网站| 亚洲女人天堂成人av在线| 老司机久久99久久精品播放免费| 国产精品久久久免费| 国产色综合久久| 亚洲四色影视在线观看| 欧美国产日韩一区二区三区| 午夜精品影院在线观看| 欧美日韩一区二区三区在线观看免 | 久久riav二区三区| 欧美视频成人| 免费视频一区| 亚洲欧美日韩综合国产aⅴ| 蜜臀av一级做a爰片久久| 欧美日韩免费网站| 9国产精品视频| 亚洲电影下载| 免费成人黄色片| 亚洲国产精品久久久久| 欧美 亚欧 日韩视频在线| 香蕉成人久久| 国产亚洲欧美一区| 麻豆精品在线视频| 久久久国际精品| 136国产福利精品导航| 久久香蕉国产线看观看网| 性亚洲最疯狂xxxx高清| 国产亚洲福利| 久久亚洲电影| 久久久亚洲成人| 亚洲国产精品999| 欧美激情在线免费观看| 欧美a一区二区| 9人人澡人人爽人人精品| 99国内精品久久久久久久软件| 欧美图区在线视频| 久久久久久高潮国产精品视| 久久久久久久久蜜桃| 亚洲精品女av网站| 一本大道久久精品懂色aⅴ | 欧美日韩国产另类不卡| 一本一本久久| 亚洲淫性视频| 国内自拍一区| 免费亚洲网站| 欧美日韩第一区日日骚| 欧美在线free| 美女视频网站黄色亚洲| 亚洲视频在线二区| 久久精品欧美| 一本色道久久加勒比88综合 | 麻豆精品视频在线观看视频| 亚洲免费观看在线观看| 亚洲五月婷婷| 亚洲福利一区| 亚洲一区欧美激情| 亚洲激情网站| 午夜精品久久久久久久99水蜜桃| 最新国产精品拍自在线播放| 亚洲一区二区三区在线看 | 99伊人成综合| 香蕉久久精品日日躁夜夜躁| 亚洲老板91色精品久久| 性久久久久久久久久久久| 亚洲精选视频在线| 久久精品国产69国产精品亚洲| 一区二区激情小说| 久久亚洲综合色| 欧美一级视频| 欧美日韩第一区| 亚洲三级免费电影| 亚洲欧美国产精品专区久久| 亚洲国产日韩欧美在线图片| 亚洲欧美日韩成人高清在线一区| 亚洲人成网站在线播| 久久精品国产77777蜜臀| 亚洲欧美激情一区二区| 欧美激情国产日韩精品一区18| 久久久午夜电影| 国产精品国产三级国产普通话三级 | 一二美女精品欧洲| 亚洲激情电影在线| 久久久噜噜噜久久久| 久久国产精品99久久久久久老狼| 欧美日韩小视频| 亚洲国产精品久久久久秋霞影院| 国外视频精品毛片| 欧美一区二区免费观在线| 亚洲在线1234| 久久婷婷人人澡人人喊人人爽| 欧美高清视频在线播放| 欧美在线高清视频| 欧美日韩一区三区四区| 亚洲二区免费| 伊人久久综合| 久久免费视频在线观看| 久久国产日韩| 国产一区二区中文字幕免费看| 99日韩精品| 午夜精品久久久久久久久久久久久 | 久久se精品一区精品二区| 在线免费观看一区二区三区| 午夜日本精品| 久久国产精品久久久| 国产欧美日韩在线| 午夜精品国产精品大乳美女| 久久久久久婷| 伊人夜夜躁av伊人久久| 久久亚洲春色中文字幕久久久| 免费看成人av| 亚洲精品欧美一区二区三区| 欧美不卡视频一区| 亚洲精品国产欧美| 亚洲欧美成人一区二区在线电影| 国产精品福利av| 午夜天堂精品久久久久| 久久亚洲春色中文字幕| 亚洲激情小视频| 国产精品v亚洲精品v日韩精品| 午夜精品久久久久| 美女图片一区二区| 一本久道久久久| 国产伦精品一区二区三区视频孕妇 | 翔田千里一区二区| 国产午夜精品在线| 蜜臀av一级做a爰片久久| 狂野欧美一区| 亚洲另类黄色| 国产精品永久免费在线| 另类春色校园亚洲| 中文国产亚洲喷潮| 久久亚洲一区二区三区四区| 亚洲国产欧美一区| 国产精品日韩欧美一区二区| 久久先锋影音| 一本久久综合亚洲鲁鲁五月天| 欧美一区二区三区在| 亚洲国产黄色| 国产精品久久久久国产精品日日| 久久精品观看| 亚洲视频一区二区免费在线观看| 久久综合狠狠综合久久综青草| 亚洲精选大片| 伊人久久久大香线蕉综合直播| 欧美日韩在线播放三区四区| 久久久综合免费视频| 亚洲影视中文字幕| 亚洲欧洲一区二区在线播放| 久久久久网站| 午夜视频一区| 一区二区三区久久| 亚洲人成小说网站色在线| 国产一区二区主播在线| 国产精品乱人伦一区二区 | 亚洲成人在线网站| 狂野欧美激情性xxxx| 欧美一区二区在线视频| 亚洲视频一起|