Linux命令之find exec rm-刪除所有日志文件


刪除該目錄下所有.svn的文件:

find . -name .svn -exec rm -rvf {} \;

#find ... -exec rm {} \;
#find ... | xargs rm -rf
tmp_file_path=./testcases-80/
find $tmp_file_path -name "Log" -exec rm -rf {} \;
find $tmp_file_path -name "Log" | 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命令:
#find ./ -type f -name "*.cpp"|xargs grep "test" -n
#find . -name "*cpp" -exec grep "test" {} \; -print

# find / -name *.log          //指定目錄 要搜索的文件名 
# find / -name core print       //檢查系統是否有巨大的CORE文件,可直接刪除
# find . –ctime | print             //列出當前目錄中在當前24小時內更改的所有文件
# find /tmp -user "xxxx" -exec rm {} \;     //找到tmp目錄下xxx用戶生成的文件並刪除
eg: find /tmp -user "kunlun" -exec rm {} \;


免責聲明!

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



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