shell程式設計必須要掌握的命令-xargs
一,說xargs
前,說一下什麼是
程式設計
什麼是 程式設計呢,說白了就是按一定的規則把各種 組織起來,完成一定的事情。純屬個人理解,哈哈。不管是互動式的shell,還是非互動的shell,它都是由一些命令組成的。
所以命令很重要。xargs就是其中之一,並且還是相當重要的一個命令,為什麼說它重要呢,因為他和能其他命令結合使用,把一個命令的輸出,當作引數傳給另一個命令。這個根find命令引數中的exec很像,但是不同:以下4點在網上找的,第一點,是親身體驗過,家裡我用的是arch ,當你透過exec傳很多資料給後面的命令時,會卡在哪兒,其他的沒試過,如果有興趣的朋友可以自己比較一下他們速度,
[zhangy@BlackGhost music]$ time find /home/zhangy/download/ -name ".gz" -print real 0m0.053s user 0m0.003s sys 0m0.003s
1,使用find 的exec選項去處理匹配到的選項時,find 一次性將匹配到得引數傳給exec執行。但有的系統,對exec 傳的引數長度有限制,這樣在find 命令執行幾分鐘後會報溢位,錯誤資訊通常是“引數列太長”或“引數列溢位"。
2,xargs 與find 命令合用的時候,find 把匹配到得命令傳遞給xargs ,xargs 每次只獲取一部分檔案,而不是全部。分批處理。
3, 使用exec選項,會為匹配的每個檔案處理分配個程式,並不是將匹配到的檔案作為一個引數一次執行,這樣就會觸發多個程式,進而使系統效能下降,影響處理效率。
4,xargs則只有一個程式、但xargs 處理是否分批 ,批次大小,也會受系統些可調引數影響。
二,xargs應用例項
1,找出檔案,改變檔案所屬使用者
#將把當前目錄下面以test開頭的檔案使用者改為zhangy [root@BlackGhost download]# find . -name "test*" -print | xargs chown zhangy:users #檢視當前目錄中以test開頭的檔案所屬使用者 [root@BlackGhost download]# find . -name "test*" -print -exec ls -al {} \; ./test.sql.zip -rw-r--r-- 1 zhangy users 1981 Feb 2 16:05 ./test.sql.zip ./test.zip -rw-r--r-- 1 zhangy users 164 May 23 22:54 ./test.zip
2,把系統的使用者統計一下
[zhangy@BlackGhost download]# cut -d: -f1 < /etc/passwd | xargs echo >> /home/zhangy/userlist.txt
3,備份檔案
[zhangy@BlackGhost ddd]$ ls |xargs -i cp {} {}.bak cp test test.bak
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2647468/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java程式設計師面試必須要掌握的面試題Java程式設計師面試題
- Java 程式設計師必須掌握的 Linux 命令Java程式設計師Linux
- git 必須要熟練掌握的命令Git
- 程式設計師生存指南:你必須要掌握的兩點!程式設計師
- 【Linux常用命令①】程式設計師必須掌握的Linux命令Linux程式設計師
- 牛逼程式設計師必須要掌握金字塔思維程式設計師
- Java程式設計師微服務架構你必須要掌握的十個要點Java程式設計師微服務架構
- JAVA程式設計師“黃金5年”必須要掌握的知識技能Java程式設計師
- Java程式設計師必須要掌握這10種工具,缺一不可!Java程式設計師
- 程式設計師必須掌握哪些演算法?程式設計師演算法
- 程式設計師必須掌握的資料結構 1程式設計師資料結構
- 程式設計師必須掌握的資料結構 2程式設計師資料結構
- Java程式設計師必須掌握的5個註解!Java程式設計師
- 程式設計師必須掌握的五個seo知識程式設計師
- JavaScript必須要掌握的知識-作用域JavaScript
- 學習Linux必須掌握的命令!Linux
- 必須掌握的10個Linux命令!Linux
- 程式設計師必須掌握的核心演算法有哪些?程式設計師演算法
- iOS程式設計師必須知道的Android要點iOS程式設計師Android
- Linux必須掌握的shell指令碼基礎Linux指令碼
- 前端工程師必須掌握的設計模式前端工程師設計模式
- Web設計師必須掌握的六大設計策略Web
- 學習web前端,必須要掌握的CSS原理Web前端CSS
- Java程式設計師必須掌握的Spring依賴管理原理Java程式設計師Spring
- Java程式設計師必須掌握的7個Java效能指標!Java程式設計師指標
- 列舉幾個Java程式設計師通用的、必須掌握的框架Java程式設計師框架
- 面試阿里P6,Java程式設計師必須掌握的技術面試阿里Java程式設計師
- Java程式設計師必須掌握的8大排序演算法Java程式設計師排序演算法
- 10 個你必須掌握的超酷 VI 命令技巧
- 【LINUX 學習】使用find和xargs[轉摘自《shell程式設計和unix命令》]Linux程式設計
- 為什麼說 Java 程式設計師必須掌握 Spring Boot ?Java程式設計師Spring Boot
- UI設計培訓學習中必須掌握的設計原則UI
- java開發必須要掌握的20個核心技術Java
- JavaScript必須要掌握的知識-作用域編寫提升JavaScript
- 學習Linux必須掌握的命令!經驗分享Linux
- Java開發必須掌握的線上問題排查命令Java
- Android 程式設計師必須掌握的三種自動化測試方法Android程式設計師
- Shell指令碼程式設計規範與變數(shell指令碼必須要知道的規矩!)指令碼程式設計變數