1.xargs含義
翻譯:從標准輸入執行命令
lih:記憶:x 是執行的意思;args是參數列表的意思。===>就是把參數傳到后面,用這些參數去執行后面的語句。
2.具體含義
xargs在linux中是個很有用的命令,它經常和其他命令組合起來使用,非常的靈活.
xargs是給命令傳遞參數的一個過濾器,也是組合多個命令的一個工具.它把一個數據流分割為一些足夠小的塊,以方便過濾器和命令進行處理.由此 這個命令也是后置引用的一個強有力的替換.在一般使用過多參數的命令替換失敗的時候,用xargs來替換它一般都能成功.通常情況下,xargs從管道或 者stdin中讀取數據,但是它也能夠從文件的輸出中讀取數據.
xargs的默認命令是echo.這意味着通過管道傳遞給xargs的輸入將會包含換行和空白,不過通過xargs的處理,換行和空白將被空格取代.
如:
bash$ ls -l
total 0
-rwxr-xr-x 2 root root 4096 2009-02-23 090218.txt
-rwxr-xr-x 2 root root 12288 2009-06-08 090607.txt
bash$ ls -l | xargs
090218.txt 090607.txt
bash$ find ~/mail -type f | xargs grep "Linux"
./misc:User-Agent: slrn/0.9.8.1 (Linux)
./sent-mail-jul-2005: hosted by the Linux Documentation Project.
./sent-mail-jul-2005: (Linux Documentation Project Site, rtf version)
./sent-mail-jul-2005: Subject: Criticism of Bozo's Windows/Linux article
3.實例:另一個博客看的
xargs是一個非常強大的命令,可以取一個命令的輸出作為另一個命令的參數。下面就是幾個關於如何有效使用xargs命令的實例
1. 當你使用rm命令去刪除很多的文件時,你可能會得到錯誤信息:“/bin/rm Argument list too long – Linux”。這時可以用xargs來避免這個問題
find ~ -name *.log‘ -print0 | xargs -0 rm –f
獲得/etc下所有以.conf結尾的文件。可以有多種方法獲得如下結果。以下命令僅僅為了幫助大家理解如何使用xargs.find命令的輸入結果一個接一個的傳遞給xargs,作為ls -l的參數。
# find /etc -name "*.conf" | xargs ls –l
當你想下載一些URL,這些URL都保存在一個文件里,你可以以如下的方式使用xargs命令
# cat url-list.txt | xargs wget –c
找出所有的.jpg格式的圖片,並將其歸檔。
# find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz
將所有的jpg圖片文件復制到外置的硬盤中
# ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory