find與exec ,xargs的組合操作

2021-06-16 09:06:58 字數 845 閱讀 1671

#find ./ -type f -name "*.swp"|xargs rm -rf #find . -name "*.cpp" -exec grep "soapevmessage" \; -print

#find ... -exec rm {} \; 

#find ... | xargs rm -rf 

兩者都可以把find命令查詢到的結果刪除,其區別簡單的說是前者是把find發現的結果一次性傳給exec選項,這樣當檔案數量較多的時候,就 可能會出現「引數太多」之類的錯誤,相比較而言,後者就可以避免這個錯誤,因為xargs命令會分批次的處理結果。這樣看來,「find ... | xargs rm -rf」是更通用的方法,推薦使用!

rm不接受標準輸入,所以不能用find / -name "tmpfile" |rm

-exec   必須由乙個   ;   結束,而因為通常   shell   都會對   ;   進行處理,所以用   \;   防止這種情況。   

{}   可能需要寫做   '{}',也是為了避免被   shell   過濾

find ./ -type f -exec grep iceskysl {} /dev/null \; 

./表示從當前目錄找 

-type f,表示只找file,檔案型別的,目錄和其他位元組啥的不要 

-exec 把find到的檔名作為引數傳遞給後面的命令列,代替{}的部分 

-exec後便跟的命令列,必須用「 \;」結束

#find ./ -type f -name "*.cpp"|xargs grep "test" -n

#find . -name "*cpp" -exec grep "test" {} \; -print

find命令和exec xargs 命令

將指定目錄內的所有.out檔案 cp 到 tmp 目錄 find home pirate name out exec cp tmp 其中,表示當前find查詢出來的檔名,是exec的結束符並用 轉義 如何用xargs來實現呢,用下面這個命令是不行的 find home pirate name out...

find 與xargs的用法

一,find 命令一般形式 find pathname options print exec ok pathname find命令要查詢的目錄路徑,用.號標識當前目錄,用 標識系統根目錄 print find命令將匹配的檔案輸出到標準輸出 exec find命令對匹配的檔案執行該引數所給出的shel...

grep與find命令的區別

grep與find命令的區別 grep搜尋的是文字,find搜尋的是檔案,換句話說就是grep是查詢匹配條件的行,find是搜尋匹配條件的檔案。grep文字搜尋 過濾 用法 grep 引數 搜尋字串通常與管道命令一起用搜尋某個檔案的某個字元 引數 i不區分大小寫 v反向搜尋,顯示不是搜尋字串的行 c...