rm -rf * 的正确用法
昨天有個工程師寫了一個刪除日志的bug:
...
rm -rf / home/work/logs/
...
還好是在測試環(huán)境執(zhí)行的,否則估計要跑路了。
畫外音:一個“多了一個空格”的bug,看懂了么?
曾經(jīng)我也干過類似的傻事,寫過這樣刪除日志的腳本:
...
cd ${log_path}
rm -rf *
...
進入到日志目錄,然后把日志都刪除。
畫外音:看上去沒有任何問題?當目錄不存在時,悲劇就發(fā)生了。
如何避免類似的刪除根目錄的“慘劇”發(fā)生,有這樣一些建議:
一、命令替換
在生產(chǎn)環(huán)境把rm -rf 命令替換為mv,再寫個定時shell定期清理。
畫外音:模擬了回收站的功能。
二、收攏權(quán)限
帳號權(quán)限的分離,線上分配work帳號,只能夠刪除/home/work/logs/目錄,無法刪除根目錄。
畫外音:大公司一般線上權(quán)限管理比較規(guī)范,小公司就未必了,搞不好所有的小伙伴都有權(quán)限在線上亂搞。
三、使用&&
可以通過“&&”,將
cd ${log_path}
rm -rf *
合并成一個語句
cd ${log_path} && rm -rf *
當前半句執(zhí)行失敗的時候,后半句不再執(zhí)行。
畫外音:這個小技巧很贊。
四、判斷目錄是否存在
制定編碼規(guī)范,對目錄進行操作之前,要先判斷目錄是否存在。
畫外音:靠人的自覺來保證規(guī)范的執(zhí)行,總感覺有些不太靠譜。當然,規(guī)范是有必要的。
原文鏈接:https://blog.csdn.net/z50L2O08e2u4afToR9A/java/article/details/85272137
總結(jié)
以上是生活随笔為你收集整理的rm -rf * 的正确用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 尼康尼克尔可更换镜头总产量突破 1.2
- 下一篇: 台积电:预计到 2030 年半导体和代工