xargs 命令


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM