Linux rm命令:刪除檔案或目錄

linux基礎入門教程發表於2019-06-22

當 Linux 系統使用很長時間之後,可能會有一些已經沒用的檔案(即垃圾),這些檔案不但會消耗寶貴的硬碟資源,還是降低系統的執行效率,因此需要及時地清理。

 

rm 是強大的刪除命令,它可以永久性地刪除檔案系統中指定的檔案或目錄。在使用 rm 命令刪除檔案或目錄時,系統不會產生任何提示資訊。此命令的基本格式為:

[root@localhost ~]# rm[選項] 檔案或目錄

選項:

  • -f:強制刪除(force),和 -i 選項相反,使用 -f,系統將不再詢問,而是直接刪除目標檔案或目錄。
  • -i:和 -f 正好相反,在刪除檔案或目錄之前,系統會給出提示資訊,使用 -i 可以有效防止不小心刪除有用的檔案或目錄。
  • -r:遞迴刪除,主要用於刪除目錄,可刪除指定目錄及包含的所有內容,包括所有的子目錄和檔案。

注意,rm 命令是一個具有破壞性的命令,因為 rm 命令會永久性地刪除檔案或目錄,這就意味著,如果沒有對檔案或目錄進行備份,一旦使用 rm 命令將其刪除,將無法恢復,因此,尤其在使用 rm 命令刪除目錄時,要慎之又慎。

【例 1】基本用法。
rm 命令如果任何選項都不加,則預設執行的是"rm -i 檔名",也就是在刪除一個檔案之前會先詢問是否刪除。例如:

[root@localhost ~]# touch cangls
[root@localhost ~]# rm cangls
rm:是否刪除普通空檔案"cangls"?y
#刪除前會詢問是否刪除

【例 2】 刪除目錄。
如果需要刪除目錄,則需要使用"-r"選項。例如:

[root@localhost ~]# mkdir -p /test/lm/movie/jp
#遞迴建立測試目錄
[root@localhost ~]# rm /test
rm:無法刪除"/test/": 是一個目錄
#如果不加"-r"選項,則會報錯
[root@localhost ~]# rm -r /test
rm:是否進入目錄"/test"?y
rm:是否進入目錄"/test/lm/movie"?y
rm:是否刪除目錄"/test/lm/movie/jp"?y
rm:是否刪除目錄"/test/lm/movie"?y
rm:是否刪除目錄"/test/lm"?y
rm:是否刪除目錄"/test"?y
#會分別詢問是否進入子目錄、是否刪除子目錄

大家會發現,如果每級目錄和每個檔案都需要確認,那麼在實際使用中簡直是災難!

【例 3】強制刪除。
如果要刪除的目錄中有 1 萬個子目錄或子檔案,那麼普通的 rm 刪除最少需要確認 1 萬次。所以,在真正刪除檔案的時候,我們會選擇強制刪除。例如:

[root@localhost ~]# mkdir -p /test/lm/movie/jp
#重新建立測試目錄
[root@localhost ~]# rm -rf /test
#強制刪除,一了百了

加入了強制功能之後,刪除就會變得很簡單,但是需要注意,資料強制刪除之後無法恢復,除非依賴第三方的資料恢復工具,如 extundelete 等。但要注意,資料恢復很難恢復完整的資料,一般能恢復 70%~80% 就很難得了。所以,與其把寶壓在資料恢復上,不如養成良好的操作習慣。

雖然 "-rf" 選項是用來刪除目錄的,但是刪除檔案也不會報錯。所以,為了使用方便,一般不論是刪除檔案還是刪除目錄,都會直接使用 "-rf" 選項。

下一篇:Linux rm

推薦閱讀文章

年薪40+W的大資料開發【教程】,都在這兒!

大資料零基礎快速入門教程

相關文章