
我使用的是 Ubuntu 10.04。我有一個大目錄,其中包含(許多子目錄)和我在腳本中經常使用的資料檔案。我想確保我永遠不會意外刪除/覆蓋/更改此超級目錄中的任何檔案/目錄。
我怎樣才能做到這一點?
答案1
主要是透過減少保護和增加便利性來排序:
將檔案儲存在實體只讀媒體(例如 CD-ROM)上。
將檔案儲存在以唯讀方式掛載的單獨檔案系統上。
如果您是管理員,請建立另一個使用者並使這些檔案擁有該另一個使用者。
使用保險絲綁定檔案系統(Ubuntu 軟體包
bindfs
)建立目錄樹的唯讀視圖,並將腳本指向此只讀視圖:bindfs -p a-w /path/to/actual/tree /path/to/readonly/view myscript -d /path/to/readonly/view
使用 使目錄樹唯讀
chmod a-w /path/to/tree
。使用硬連結檔案建立樹的副本,並將腳本指向該副本。然後,您的腳本可能仍會修改現有文件,但如果它們建立、刪除或替換文件,則只會影響副本。
cp -al /path/to/actual/tree /path/to/readonly/view myscript -d /path/to/readonly/view
我建議您使用bindfs。鑑於您的要求,我願意做任何其他事情的唯一原因是如果它不可用。
如果您希望腳本能夠寫入目錄樹,但不影響實際文件,您可以使用聯合檔案系統,例如函數或者UnionFS熔斷器。
答案2
沒有真正的方法,因為無論如何,你最終總是能夠刪除它們。
不過,您可以嘗試使用檔案權限。右鍵單擊目錄,將資料夾存取權限設定為“存取檔案”,並將檔案存取權限設定為唯讀。之後點選「將權限應用於所附檔案」。這樣,當您決定刪除該目錄中的檔案時,您必須手動取消設定此設定。
答案3
您可以rsync
將該目錄轉移到另一個目錄並用於--link-dest
建立硬鏈接,這樣它們就不會佔用任何額外的空間。
一篇好文章是適用於所有 Unix 的時間機器。
答案4
人非聖賢孰能。我曾經刪除了一個重要的文件,因為我剛醒來,而且我仍然很困(沒有宿醉):)幸運的是,在我學會了一些有助於減輕這種愚蠢行為的負面影響的技巧之後很久,它就發生了。他們來了:
- 始終進行備份,定期確保備份確實包含應包含的內容,以避免丟失文件的情況,嘗試從備份中恢復它並發現由於某種原因它不包含在備份中
- 使用版本控制
- 使用像 inotify 這樣的記帳系統,它將幫助您追蹤檔案系統的更改
從那次事件起,我又訂了一條嚴格的規則:「睡覺時切勿觸摸電腦」。