Permissions
使目錄不受“rm -rf”的保護
我剛剛失去了文件夾 A 中的一些數據,該文件夾在完成後位於文件夾 B 中
rm -rf B
。在我意識到自己做了什麼之前,一切都結束了。現在吸取了教訓,我希望讓我的一些文件夾防傻,以避免下次我做類似的事情並想自殺。我能想到的一種方法是編寫一個 bash 函式並將其別名為
rm
. 此函式將在每個子文件夾中查找隱藏文件,例如.dontdelete
. 找到後,它會詢問我是否真的要繼續。我不能使防寫,因為有一個不斷寫入這個文件夾的過程。有沒有更好的方法呢?
在研究您的問題時,我遇到了這種可能在將來對您有所幫助的技術。
您顯然可以像這樣觸摸目錄中的文件:
touch -- -i
現在,當您
rm -fr *
在存在 的目錄中執行命令時-i
,您將看到來自rm
.$ ls file1 file2 file3 file4 file5 -i $ rm -fr * rm: remove regular empty file `file1'? n rm: remove regular empty file `file2'? n rm: remove regular empty file `file3'? n rm: remove regular empty file `file4'? n rm: remove regular empty file `file5'? n
rm
只需為to always do保留一個別名即可實現相同的目的rm -i
。這會很煩人。所以我經常看到的做法是設置這個別名,然後在你真的想在沒有提示的情況下刪除它時禁用它。alias rm='rm -i'
現在在目錄中你會受到這樣的歡迎:
$ ls file1 file2 file3 file4 file5 $ rm -r * rm: remove regular empty file `file1'?
要覆蓋別名:
$ \rm -r *
然而,這仍然沒有停止
rm -fr
。但它確實為您提供了一些保護。參考