shell編程必須要掌握的命令-xargs
一. 說xargs命令前,說一下什麼是shell編程
什麼是shell編程呢,說白了就是按一定的規則把各種命令組織起來,完成一定的事情。純屬個人理解,哈哈。不管是互動式的shell,還是非交互的shell,它都是由一些命令組成的。
所以命令很重要。xargs就是其中之一,並且還是相當重要的一個命令,為什麼說它重要呢,因為他和能其他命令結合使用,把一個命令的輸出,當作參數傳給另一個命令。這個根find命令參數中的exec很像,但是不同:以下4點在網上找的,第一點,是親身體驗過,家裡我用的是archlinux,當你通過exec傳很多數據給後面的命令時,會卡在哪兒,其他的沒試過,如果有興趣的朋友可以自己比較一下他們速度,
1,使用find 的exec選項去處理匹配到的選項時,find 一次性將匹配到得參數傳給exec執行。但有的系統,對exec 傳的參數長度有限制,這樣在find 命令執行幾分鐘後會報溢出,錯誤信息通常是「參數列太長」或「參數列溢出"。
2,xargs 與find 命令合用的時候,find 把匹配到得命令傳遞給xargs ,xargs 每次只獲取一部分文件,而不是全部。分批處理。
3, 使用exec選項,會為匹配的每個文件處理分配個進程,並不是將匹配到的文件作為一個參數一次執行,這樣就會觸發多個進程,進而使系統性能下降,影響處理效率。
4,xargs則只有一個進程、但xargs 處理是否分批 ,批次大小,也會受系統些可調參數影響。
二. xargs應用實例
1,找出文件,改變文件所屬用戶
2,把系統的用戶統計一下
3,備份文件
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
※科普帖:Linux操作系統
※Ubuntu 19.10鏡像將捆綁閉源NVIDIA驅動程序
TAG:Linux資訊速推 |