xargs用來處理一些輸出結果要來當另一個輸入的arguments碰到的問題。 例如
# find /usr/include/ -name "*.h" | xargs -n 2 diff
-n2是指定有兩兩當成輸出變成diff的argumnets
# find /usr/include/ -name "*.h" | xargs grep '#ifdef'
正常內定是輸出的一拖拉窟的結果,有用xargs時是一個一個餵給後面的命令
# find /usr/include/ -name "*.h" | xargs -i cp {} ~/include/
-i 與 { }可以把find的輸出的每一個當成cp的第一個argument, /.就可以當成第 二個argument。 其實find裡面有-exec這個選項後面也可以用{ }表示一個一個餵給後面程式,而不是 一拖拉庫的餵給後面程式。
# find /usr/include/ -name "*.h" -exec cp {} ~/include/
文章出自http://www.study-area.org/cyril/scripts/scripts/node30.html
沒有留言:
張貼留言