ITPub博客

首页 > Linux操作系统 > Linux操作系统 > xargs

xargs

原创 Linux操作系统 作者:ygzhou518 时间:2012-02-24 11:45:37 0 删除 编辑
xargs

xargs是一條Unix類Unix作業系統的常用命令。它的作用是將參數列錶轉換成小塊分段傳遞給其他命令,以避免參數列表過長的問題[1]

例如,下面的命令:

rm `find /path -type f`

如果path目錄下文件過多就會因為「參數列表過長」而報錯無法執行。但改用xargs以後,問題即獲解決。

find /path -type f -print0 | xargs -0 rm

本例中xargs將find產生的長串文件列表拆散成多個子串,然後對每個子串調用rm。這樣要比如下使用find命令效率高的多。

find /path -type f -exec rm '{}' \;

上面這條命令會對每個文件調用"rm"命令。當然使用新版的"find"也可以得到和"xargs"命令同樣的效果:

find /path -type f -exec rm '{}' +

xargs的作用一般等同於大多數Unix shell中的反引號,但更加靈活易用,並可以正確處理輸入中有空格等特殊字元的情況。對於經常產生大量輸出的命令如findlocategrep來說非常有用。

[编辑] 示例

  • find . -name "*.foo" | xargs grep bar

該命令大體等價於

grep bar `find . -name "*.foo"`
  • find . -name "*.foo" -print0 | xargs -0 grep bar

使用了GNU特殊規定的空字元。

  • find . -name "*.foo" -print0 | xargs -0 -t -r vi

與上面的基本相同但啟動vi進行編輯。-t參數會提前列印錯誤信息。-r參數是一個GNU擴展,表明在無輸入情況下則不構造命令執行。

  • find . -name "*.foo" -print0 | xargs -0 -i mv {} /tmp/trash

使用-i參數將{}中內容替換為列表中的內容。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24867586/viewspace-717068/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Deadlocks
请登录后发表评论 登录
全部评论

注册时间:2011-02-11

  • 博文量
    167
  • 访问量
    359505