rm [選項] 檔案或目錄...
| 選項 | 長選項 | 說明 |
|---|---|---|
-f | --force | 忽略不存在的檔案、不提示確認、直接刪除(含唯讀檔案)。 |
-i | --interactive | 逐一確認刪除,輸入 y 或 Y 才執行。 |
-r / -R | --recursive | 遞迴刪除目錄及其所有內容(子目錄、檔案)。 |
-d | --dir | 刪除空目錄(不加 -r 時)。 |
-v | --verbose | 顯示刪除操作的詳細資訊。 |
--no-preserve-root | 允許刪除根目錄 /(極度危險,預設禁止)。 | |
--preserve-root | 預設行為,拒絕刪除根目錄。 | |
-I | 刪除超過 3 個檔案或遞迴刪除時,只提示一次確認(折衷 -i 與 -f)。 |
rm -f test.txt
rm -i *.log
rm -rf /tmp/old_project
警告: rm -rf 是毀滅性操作,執行前請三次確認路徑,建議先用 ls 預覽。
rm -f -- '-filename' # 以 -- 結束選項解析
rm -f ./-filename # 或用相對路徑開頭
rm -d empty_dir
~/.bashrc 加入 alias rm='rm -I',避免誤刪大量檔案時無提示。trash-cli,用 trash-put 替代 rm,支援還原。find /var/log -name '*.log' -mtime +30 -exec rm -f {} +
rsync -a --delete empty_dir/ target_dir/ 比 rm -rf 更快(利用目錄重命名)。--preserve-root,切勿加入 --no-preserve-root。| 錯誤訊息 | 原因 | 解決 |
|---|---|---|
rm: cannot remove 'file': Permission denied | 無寫入權限 | 確認目錄權限或用 sudo |
rm: cannot remove 'dir': Is a directory | 目標是目錄未加 -r | 加上 -r 或 -d(空目錄) |
Argument list too long | 檔案數過多超過命令列限制 | 改用 find ... -exec rm {} + 或 xargs |
rm 是 Linux 最基礎也最危險的指令之一。熟練掌握 -i/-f/-r 組合、善用 find 配合、建立別名保護與垃圾桶習慣,能讓日常操作既高效又安全。操作無價,備份優先。