星期二, 9月 30, 2008

[Linux]find與xargs的結合

http://marrtw.blogspot.com/2008/06/find-and-remove-files.html
這篇有說明如何用find找出符合條件的檔案,然後remove
其實常常需要用到,我列幾個例子
find ./ -type f -name "*.html" | xargs -i rm {}
找出*.html的檔案,xargs -i的意思是把這些檔案放在{}裡
但有時候file name含有空白(space)、換行(\r\n or \n)等符號
就得改成
find ./ -type f -name "*.html" -print0 | xargs -i -0 rm {}

----------------------------------------------------------
Update:
看到SUMMARY - find -exec vs xargs
一定要說明一下的~~~~^__^
用xargs比-exec 有效率(more efficient)
-exec: 是每find到一筆資料(data)就執行
xargs: 是收集了20~50筆資料(data)在執行

另外要提醒的是如果stdin是empty,xargs要加 -r

-----------------------------------------------------------
Update:
另外如果不想找出來的檔案有./
則要在find後面直接接目錄名稱
find dir -type f

沒有留言:

張貼留言