跳至主要內容
問題與解答
Linux 刪除資料夾與檔案的指令有哪些?

Linux 刪除資料夾與檔案的指令有哪些?

問:
Linux 刪除資料夾與檔案的指令有哪些?
答:

在 Linux 刪除資料夾用 rm -r(空資料夾也可以用 rmdir),刪除檔案用 rm。下面先列出最常用的指令,再依情況說明用法與注意事項。

要做的事指令
刪除一個檔案rm 檔名
刪除空的資料夾rmdir 資料夾
刪除資料夾(含裡面所有檔案與子資料夾)rm -r 資料夾
強制刪除資料夾,不逐一詢問rm -rf 資料夾
清空資料夾,但保留資料夾本身find 資料夾 -mindepth 1 -delete
只刪除資料夾裡的檔案,保留子資料夾find 資料夾 -type f -delete

一、刪除資料夾:rm -r、rm -rf 與 rmdir

刪除空的資料夾:rmdir

rmdir mydir

rmdir 只能刪除空的資料夾。資料夾裡還有東西時會出現「Directory not empty」並停止,不會刪掉任何檔案,所以它是最安全的刪除方式。

刪除資料夾與裡面的所有內容:rm -r

rm -r mydir

-r 是「遞迴」(recursive)的意思:不管裡面有多少層子資料夾,會連同所有檔案一起刪除。遇到唯讀的檔案時,系統會一個一個詢問是否刪除。

強制刪除,不詢問:rm -rf

rm -rf /var/log/httpd/access

-f 是「強制」(force):不詢問、不提示,檔案不存在也不會報錯。上面這行會刪除 /var/log/httpd/access 資料夾,以及它底下所有的檔案與子資料夾。

rm -rf 是最常用、也最危險的刪除指令,執行前請先看第五節的注意事項。

刪除前逐一確認:rm -ri

rm -ri mydir

加上 -i 之後,每刪除一個檔案或資料夾都會先詢問,適合不確定裡面有什麼的時候。

二、刪除檔案:rm 的基本用法

rm file.txt              # 刪除一個檔案
rm file1.txt file2.txt   # 一次刪除多個檔案
rm *.log                 # 刪除目前資料夾裡所有 .log 檔
rm -f access.log         # 強制刪除,不詢問
rm -i file.txt           # 刪除前先詢問

刪除其他資料夾裡的檔案,在檔名前面加上路徑即可,例如 rm -f /var/log/httpd/access.log。

三、清空資料夾,但保留資料夾本身

常見的需求是「把資料夾裡的東西都刪掉,但資料夾留著」,例如清空快取或暫存資料夾。依照要刪除的範圍,有三種做法:

指令刪除的範圍
rm -rf mydir/*檔案與子資料夾,但不包含隱藏檔(以 . 開頭的檔案,例如 .htaccess)
find mydir -mindepth 1 -delete裡面的所有東西,包含隱藏檔,只保留 mydir 本身
find mydir -type f -delete只刪除檔案,子資料夾的結構保留

只想刪除目前所在資料夾的檔案,把 mydir 換成 . 即可,例如 find . -type f -delete。

四、檔案太多,出現「Argument list too long」

資料夾裡有幾萬個檔案時,執行 rm * 可能會出現「Argument list too long」,因為 * 展開後的檔名超過系統的長度限制。這時改用 find:

find mydir -type f -delete

或是搭配 xargs 分批刪除。檔名裡有空白時,要加上 -print0 與 -0,才不會被拆成兩個檔名:

find mydir -type f -print0 | xargs -0 rm -f

只想刪除特定檔案時,可以加上條件,例如刪除 30 天以前的 .log 檔:

find /var/log/myapp -type f -name "*.log" -mtime +30 -delete

五、刪除之前,先確認這幾件事

Linux 的指令列沒有資源回收筒,rm 刪掉的檔案無法從系統裡救回來。執行前建議養成這幾個習慣:

  1. 先列出、再刪除:用 find 時,先把 -delete 拿掉執行一次,確認列出來的就是要刪的檔案,再把 -delete 加回去。用 rm 時,可以先用 ls 看一次同樣的路徑。
  2. 確認目前所在的位置:執行 rm -rf * 之前,先用 pwd 確認自己在哪個資料夾。在錯的資料夾執行,就會刪錯東西。
  3. 寫在程式裡的路徑要防呆:腳本裡寫 rm -rf "$DIR"/*,如果 $DIR 剛好是空的,就會變成 rm -rf /*。可以改寫成 rm -rf "${DIR:?}"/*,變數為空時指令會直接停止。
  4. 小心 sudo:加上 sudo 之後,系統檔案也刪得掉。多數發行版的 rm 預設會擋下 rm -rf /,但 rm -rf /* 這類寫法擋不住。
  5. 重要資料先備份:正式主機上的網站檔案或資料庫,刪除前先備份,誤刪時才有辦法還原。
發表於2026-08-20   更新於2026-10-19
免費諮詢 · 1 個工作天內回覆

準備好讓網站 開始幫你帶生意了嗎?

不論是要做新網站、救舊網站,還是只想先聊聊方向——先諮詢,不用先付錢,我們照實給你建議。

1 個工作天回覆免費諮詢與報價費用白紙黑字26 年找得到人
免費諮詢
免費諮詢 LINE諮詢 03-4020420 臉書傳訊
免費諮詢 LINE諮詢 03-4020420 臉書傳訊
免費諮詢
免費諮詢 LINE諮詢 03-4020420 臉書傳訊
免費諮詢 LINE諮詢 03-4020420 臉書傳訊