前段時間,我錯誤地刪除了我的主資料夾,因為我rm -rf *
在錯誤的終端機上運行了 a,其工作目錄是主資料夾!
我希望該命令有一個別名rm
,但事實並非如此。
現在,我計劃製作一個腳本作為rm
.
有什麼最佳實踐可以建議嗎?
謝謝。
答案1
如果您想要定制的rm
,請不要稱呼它rm
,而是您自己的名字,myrm
或delete
其他名稱。
別名rm='rm -i'
是一個可怕的東西,因為使用一段時間後,您會期望rm
在刪除檔案之前預設提示您。當然,有一天您將使用未設定別名的帳戶來運行它,在您了解發生了什麼之前,為時已晚。
無論如何,為檔案遺失或損壞做好準備的一個好方法是進行備份。
可以保護您免受意外檔案刪除或覆蓋的快速替代方案是使用支援無限快照的檔案系統(例如 ZFS)。如果自動執行頻繁快照,您可以將檔案還原到事件發生前最後一次快照期間的狀態。
答案2
如果您想保存別名,但又不想冒險習慣在您的系統上與其他系統上工作方式不同的命令,您可以rm
像這樣停用
alias rm='echo "rm is disabled, use remove or trash or /bin/rm instead."'
然後您可以建立自己的安全別名,例如
alias remove='/bin/rm -irv'
或改用trash
。
答案3
你可以嘗試使用trash
反而。記得偶爾清空一下...
答案4
我使用以下腳本。
#!/bin/sh
trash=$HOME/tmp
mv "$@" $trash
nohup find "$trash" -type f -atime +7 -exec /bin/rm '{}' \; 2>&1 &
如果您不小心刪除了文件,請從$HOME/tmp
.
如果造訪時間是 7 天后,腳本會將已刪除的檔案移至tmp
目錄中,並在下次執行刪除腳本時將其刪除(半自動清理目錄$HOME/tmp
)。