xargs命令

    xargs是給命令傳遞參數的一個過濾器,也是組合多個命令的一個工具。它把一個數據流分割爲一些足夠小的塊,以方便過濾器和命令進行處理。ide

    一般狀況下,xargs從管道或者stdin中讀取數據,可是它也可以從文件的輸出中讀取數據。xargs的默認命令是echo,這意味着經過管道傳遞給xargs的輸入將會包含換行和空白,不過經過xargs的處理,換行和空白將被空格取代
工具


    xargs是一個很是強大的命令,能夠取一個命令的輸出做爲另外一個命令的參數。下面就是幾個關於如何有效使用xargs命令的實例。url

 

一、當你使用rm命令去刪除不少的文件時,如:spa

find ~ -name 「*.log」 -print -exec rm –f {} \;

你可能會獲得錯誤信息:「/bin/rm Argument list too long – Linux」。圖片

這時能夠用xargs來避免這個問題get

find ~ -name *.log‘ -print0 | xargs -0 rm –f 或者find ~ -name *.log‘  | xargs rm –f

二、得到/etc下全部以.conf結尾的文件。如下命令僅僅爲了幫助你們理解如何使用xargs.find命令的輸入結果一個接一個的傳遞給xargs,做爲ls -l的參數。it

find /etc -name "*.conf" | xargs ls -l 或者find /etc -name "*.conf" -exec ls -l {} \;

三、當你想下載一些URL,這些URL都保存在一個文件裏,你能夠以以下的方式使用xargs命令io

cat url-list.txt | xargs wget –c

四、找出全部的.jpg格式的圖片,並將其歸檔。class

find / -name *.jpg -type f -print | xargs tar -cvzf p_w_picpaths.tar.gz

五、將全部的jpg圖片文件複製到外置的硬盤中下載

ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory
相關文章
相關標籤/搜索