linux rm指令 及誤刪除解決

2022-02-22 05:08:08 字數 2205 閱讀 8352

看到這兒,我們學習一下 這個rm指令

rm命令可以刪除乙個目錄中的乙個或多個檔案或目錄,也可以將某個目錄及其下屬的所有檔案及其子目錄均刪除掉。對於鏈結檔案,只是刪除整個鏈結檔案,而原有檔案保持不變。

注意:使用rm命令要格外小心。因為一旦刪除了乙個檔案,就無法再恢復它。所以,在刪除檔案之前,最好再看一下檔案的內容,確定是否真要刪除。rm命令可以用-i選項,這個選項在使用副檔名字元刪除多個檔案時特別有用。使用這個選項,系統會要求你逐一確定是否要刪除。這時,必須輸入y並按enter鍵,才能刪除檔案。如果僅按enter鍵或其他字元,檔案不會被刪除。

rm (選項)(引數)

-d:直接把欲刪除的目錄的硬連線資料刪除成0,刪除該目錄;

-f:強制刪除檔案或目錄;

-i:刪除已有檔案或目錄之前先詢問使用者;

-r或-r:遞迴處理,將指定目錄下的所有檔案與子目錄一併處理;

--preserve-root:不對根目錄進行遞迴操作;

-v:顯示指令的詳細執行過程。

檔案:指定被刪除的檔案列表,如果引數中含有目錄,則必須加上-r或者-r選項。

互動式刪除當前目錄下的檔案test和example

rm -i test example

remove test ?n(不刪除檔案test)

remove example ?y(刪除檔案example)

刪除當前目錄下除隱含檔案外的所有檔案和子目錄

# rm -r *

即:rm -rf /* (是強制刪除根目錄及全部的子檔案)

1、safe-rm

safe-rm 是乙個開源軟體用來替代不太安全的rm,可以在/etc/safe-rm.conf中配置路徑黑名單,定義哪些不能被safe-rm刪除。

可以將 safe-rm 更名為 rm 並放在 $path 中比 原rm 程式靠前的位置。一些指令碼中使用完全路徑/bin/rm則不會受此影響。 

$ rm -rf /etc/

safe-rm: skipping /etc/

2、建立**站機制

它並不真正執行刪除操作,而是將檔案移動到乙個特定目錄,可以設定定時清楚**站,或者在**站裡面的檔案大小達到一定容量時(或者用時間做判斷)執行刪除操作以騰出空間。

可以寫個shell指令碼替換rm命令,或者在需要刪除檔案的時候使用mv命令將檔案移動到**站。  

1) 在/home/username/ 目錄下新建乙個目錄,命名為:.trash

2)在/home/username/tools/目錄下,新建乙個shell檔案,命名為: remove.sh

trash_dir="/home/username/.trash"  

for i in $*; do

stamp=`date +%s`

filename=`basename $i`

mv $i $trash_dir/$filename.$stamp

done

3)修改~/.bashrc, 增加一行

alias rm="sh /home/username/tools/remove.sh"

用我們自建的remove.sh替代rm命令

4)設定crontab,定期清空垃圾箱,如:

0 0 * * * rm -rf /home/username/.trash/*

每天0點清空垃圾箱

5)source ~/.bashrc 使替換立即生效

3、注意指令碼中rm -rf 變數的使用

在指令碼盡量不要使用 rm -rf $foo/, 請使用 rm -rf $foo;另外刪除盡量不要寫相對路徑,不要帶變數。

4、根檔案系統設定唯讀掛載

noauto,ro

5、各種備份

可以異地遠端備份重要的資料,採用dump的增量備份機制,lvm快照,虛擬化環境中的快照、raid5等等。

附錄:how do i prevent accidental rm -rf /*?

關注部落格,每天進步一小點! 嘿嘿~~~

一 通過替換linux rm命令防止誤刪除

通過替換linux rm命令防止誤刪除 1.在 home username 目錄下新建乙個目錄,命名為 trash 2.在 home username tools 目錄下,新建乙個shell檔案,命名為 remove.sh plain para cnt trash dir home username...

Oracle日誌檔案被誤刪除解決

oracle日誌檔案被誤刪除解決 目錄 www.2cto.com 1 問題出現.2 1.1 誤刪除日誌檔案.2 1.2 oracle無法連線.2 2 大概解決思路.2 2.1 sys登入資料庫.2 2.2 關閉資料庫normal.2 www.2cto.com 2.3 啟動oracle例程.2 2.4...

ORACLEFLASHBACK 恢復誤刪除資料

啟動錶行移動功能 alter table ds.zw file enable row movement 按時間閃回表 flashback table ds.zw file to timestamp to date 201412011100 yyyymmddhh24mi 啟動資料庫閃回功能 alter...