Ubuntu rm命令:刪除文件/目錄的正確姿勢

在Ubuntu系統中,刪除文件或目錄是日常操作,但操作不當可能導致重要數據丟失。rm命令是最常用的刪除工具,掌握它的正確使用方法非常重要。本文將用簡單易懂的方式,帶你學習rm命令的“正確姿勢”。

一、rm命令的基本作用

rm是“remove”的縮寫,核心功能是刪除文件或目錄。需要注意:
- 默認情況下,rm刪除的文件/目錄不會進入“回收站”,而是直接從磁盤中移除,刪除後難以直接恢復
- 它不能刪除只讀文件(除非使用chmod修改權限),也不能刪除已打開的文件(除非文件句柄被釋放)。

二、最基礎的用法

1. 刪除單個文件

格式:rm 文件名
示例:刪除名爲test.txt的文件

rm test.txt

執行後,test.txt會被直接刪除。如果文件不存在,終端會顯示“沒有那個文件或目錄”的錯誤。

2. 刪除目錄(注意:目錄需加參數)

直接用rm 目錄名會報錯(提示“是一個目錄”),因爲rm默認只能刪除文件。要刪除目錄(包括目錄內所有內容),需加參數-r(代表“遞歸刪除”,即刪除目錄及其所有子文件/子目錄):
格式:rm -r 目錄名
示例:刪除名爲docs的目錄(假設目錄內有子文件)

rm -r docs

三、常用選項:讓刪除更安全可控

rm有很多選項,通過添加不同參數可以實現更靈活的刪除需求。以下是最常用的3個選項:

1. -i(Interactive,交互式確認)

刪除前會詢問用戶是否確認,避免誤刪。
格式:rm -i 文件名/目錄名
示例:刪除data.csv前確認

rm -i data.csv

執行後,終端會提示:rm: 是否刪除普通文件 'data.csv'?,輸入y按回車確認,輸入n取消刪除。

2. -f(Force,強制刪除)

忽略錯誤提示,直接刪除文件/目錄(即使文件不存在或權限不足)。慎用!
格式:rm -f 文件名/目錄名
示例:強制刪除不存在的temp.log(不會報錯)

rm -f temp.log

3. -v(Verbose,顯示刪除過程)

刪除時顯示具體操作,方便確認哪些文件被刪除。
格式:rm -v 文件名/目錄名
示例:刪除多個文件並顯示過程

rm -v file1.txt file2.txt

執行後會輸出:已刪除 'file1.txt'已刪除 'file2.txt'

四、實際操作示例

示例1:刪除單個文件(帶確認)

# 刪除前確認
rm -i report.pdf

輸入y後,report.pdf被刪除;輸入n則保留。

示例2:刪除目錄(含子內容)

# 刪除名爲"old_project"的目錄(遞歸刪除所有內容)
rm -r old_project

示例3:強制刪除多個文件

# 強制刪除不存在的文件(不報錯),或覆蓋已有文件
rm -f backup.txt temp.doc

示例4:刪除當前目錄下所有txt文件

# 用通配符*匹配所有txt文件,-i可加可不加(建議加-i確認)
rm -i *.txt

五、必須注意的“坑”與安全提示

1. 不要用rm *rm -rf *

這會遞歸刪除當前目錄下所有文件和子目錄,如果目錄裏有重要文件(比如照片、文檔),會直接被清空!
- 錯誤示例:在桌面目錄執行rm -rf *,桌面文件瞬間消失。
- 正確做法:如需批量刪除,先列出文件確認:ls *.txt,確認後再刪除。

2. 不要刪除系統關鍵文件

/etc(系統配置)、/bin(系統命令)、/usr(用戶程序)等目錄下的文件,隨意刪除可能導致系統故障。

3. 刪除目錄時先確認結構

如果目錄內有多層子目錄,rm -r會遞歸刪除所有內容。例如:

# 假設目錄結構:docs/1.txt, docs/sub/2.txt
rm -r docs  # 會刪除docs及其所有內容

刪除前務必用ls -l docs查看目錄內容,避免誤刪重要子目錄。

4. 刪除空目錄用rmdir(僅刪空目錄)

rmdir是專門刪除空目錄的命令,比rm -r更安全(無法刪除非空目錄):

rmdir empty_folder  # 僅刪除空目錄

如果目錄非空,rmdir會報錯:目錄非空

六、誤刪後如何恢復?

如果誤刪了文件,可嘗試以下方法(但成功率不高,需儘快操作):
1. 圖形界面回收站:Ubuntu的“Trash”文件夾中可能保留剛刪除的文件(僅針對圖形界面操作的文件,終端刪除的文件默認不進回收站)。
2. 工具恢復:使用extundelete(適用於ext4文件系統)或testdisk等工具。需先安裝:

   sudo apt install extundelete

然後按工具說明操作(需指定設備和分區,如extundelete /dev/sda5 --restore-all)。
3. 注意:刪除後不要繼續寫入數據(如新建文件),否則可能覆蓋原數據,導致恢復失敗。

總結

rm命令是Ubuntu中刪除文件/目錄的核心工具,但它“不可逆”的特性要求我們必須謹慎:
- 刪除前確認目標(文件名、目錄結構),必要時用lstree查看內容。
- 優先使用-i(確認模式),避免誤刪。
- 遠離危險操作(如rm *rm -rf *),尤其是系統目錄和重要數據。

掌握正確的刪除姿勢,才能讓數據安全無憂!

小夜