cb rm rf Linux rm命令詳解

2021-10-13 02:18:47 字數 1483 閱讀 5830

rm常見命令引數

rm: 可以備份,盡量不要刪除,比刪除更好的是重新命名  -->只刪除檔案鏈結,重啟、重新寫入後**

刪除檔案時,使用絕對路徑或者進入到目標路徑下後使用刪除命令 –> 禁止使用rm –rf ./***檔案【少個點就是根目錄了】

-r : 刪除資料夾

-f : 強制刪除檔案

rm命令刪除檔案的原理

檔案刪除原理: linux通過檔案link的數量控制檔案的刪除,只有當乙個檔案不存在任何link的時候且沒有程式呼叫的時候,檔案才會被真正刪除。

就rm命令而言,就是減少磁碟引用計數i_link(檔案到inode的鏈結數量);inode節點指向儲存資料的block,刪除檔案並不是清除inode和block,而是將檔案的硬鏈結為0,引用計數為0 才能刪除檔案

注:如果有新的資料儲存或者系統通過類似fsck命令做磁碟檢查的時候,被刪除的資料塊和目錄會被釋放,資料無法找回

檔案刪除的條件:

i_nlink  檔案的硬鏈結數量,磁碟的引用計數器

i_count 記憶體引用計數(乙個檔案被幾個程式呼叫,有乙個程式使用i_count + 1 )

i_link = 0 && i_count =0

刪除乙個檔案,也是刪除上一級目錄的block裡面的檔名

rm相關的問題答疑

問題1:當執行了刪除操作後,ls 無法查詢到這個檔案,但是呼叫這個刪除檔案的程序卻正常執行,依然能夠讀取和寫入檔案內容?

只有當i_link和i_count==0時候,系統才會整正刪除這個檔案,也就是刪除檔案還需要解除程序對該檔案的呼叫才行。

問題2:當檔案沒有被呼叫,但是執行了rm命令,刪除後的檔案還能找回來麼?

答案:rm只是減少了i_link的數量,實際就是將檔案的inode的鏈結刪除了,但是並沒有刪除檔案實體(block資料塊),如果停止機器工作,還是可以找回資料的。如果此時繼續有資料寫入,當新資料就可能會被分配到被刪除的資料的block資料塊,此時檔案就會被真正的**。

問題3:被程序占用的檔案能否被刪除?

答案: 能

答案:lsof -c 'vim'   根據後台占用檔案的命令查詢

[root@localhost omc]# touch hhh.txt

[root@localhost omc]# vim hhh.txt &

[root@localhost omc]# rm hhh.txt

[root@localhost omc]# lsof -c 'vim' | grep hhh.txt

vim 3385 root 4u reg 8,2 4096 271298 /home/omc/.hhh.txt.swp

常用的命令展示:

刪除某個資料夾: -r

rm -rf /home/omc/last.txt

自定義**站功能: 定義乙個函式,將檔案移動到指定目錄;同時別命名rm命令即可

myrm()

alias rm='myrm'

# $@: 這個程式的所有引數,作為乙個i整體傳遞、

Tcl TK之命令 命令 命令

在tcl中,一切動作都是通過命令實現的,命令通過換行符或分號隔開,對於使用過linux系統的朋友來說非常容易理解。tcl處理一條命令分為兩個步驟 解析和執行。下面將列舉幾個常見的命令 set命令用於建立 讀取和修改變數,此命令需要乙個或者兩個引數。第乙個引數是變數,第二個引數 若給出 是變數的新值。...

source 命令 命令

source 命令 從 c shell 而來 是 bash shell 的內建命令。點命令 就是乙個點符號.從 bourne shell 而來 是 source 的另一名稱。這兩個命令都以乙個指令碼檔名為引數,該指令碼將作為當前 shell 的環境執行,即不會啟動乙個新的子程序。所有在指令碼中設定的...

監控命令命令

第1行結果和uptime一樣 第2行顯示程序狀態統計,zombie 殭屍程序 第3行顯示cpu使用率,us 使用者使用cpu百分比 sy 系統使用cpu百分比 id cpu空閒百分比 第4 5行顯示記憶體 平均使用率和每個cpu使用率 小技巧 按z加顏色,按x高亮排序列,按 進行排序列左右切換 安裝...