| 參數 | 全稱 | 作用 |
-r, -R, --recursive | Recursive | 遞迴刪除目錄及其所有子目錄、檔案,無論層級多深。 |
-f, --force | Force | 強制模式:忽略不存在的檔案、不提示確認、覆蓋寫入保護。 |
為何不建議使用 rmdir?
rmdir 僅能刪除空目錄。一旦目錄內含檔案或子目錄,即回報錯誤,無法完成任務。實務上幾乎總是需搭配 rm -r。
⚠️ 關鍵風險警示
Linux 沒有回收站!
rm -rf 執行後,資料立即從檔案系統抹除,無法透過一般手段復原。誤刪 /、/etc、/home 或專案目錄將造成災難性後果。
防呆最佳實踐
- 執行前先用
ls 確認目標:ls -la /path/to/target
- 善用
-i 互動模式:rm -ri 目錄,逐一確認再刪。
- 加上
-v 顯示進度:rm -rvf 目錄,可見正在刪除的檔案。
- 別名加保護:在
~/.bashrc 設定 alias rm='rm -i',強制互動確認。
- 重要資料先備份:
tar -czf backup.tar.gz /important/dir 再刪除。
進階刪除技巧
僅刪除目錄下檔案,保留目錄本身
rm -rf /path/to/dir/* /path/to/dir/.* 2>/dev/null || true
.* 包含隱藏檔,2>/dev/null 抑制「無此檔案」錯誤訊息。
刪除特定副檔名/模式的檔案
find /path -type f -name "*.log" -delete
# 或
find /path -type f -name "*.tmp" -exec rm -f {} +
處理「Argument list too long」錯誤
檔案過多導致參數溢位時,改用 find 或 xargs:
find /huge/dir -type f -delete
# 或
ls /huge/dir | xargs -r rm -f
誤刪後的最後一線生機
- 檔案仍被進程開啟:
lsof | grep deleted 找到 PID,從 /proc//fd/ 恢復。
- ext4/ext3 檔案系統:立即卸載分區,使用
extundelete 或 debugfs 嘗試恢復。
- LVM 快照/Btrfs/ZFS 快照:若有快照,可秒級回滾。
- 備份系統:這是唯一可靠的保障。
查閱完整手冊
man rm
info coreutils 'rm invocation'
copyright ©
萬盛學電腦網 all rights reserved