rm 指令

用途

移除 (解除鏈結) 檔案或目錄。

語法

rm [  -f ] [  -r ] [  -R ] [  -i ] [  -e ] 檔案 ...

說明

rm 指令會從目錄中移除指定 檔案 參數的項目。 如果項目是檔案的最後一個鏈結,則會刪除檔案。 如果您沒有檔案的寫入權,且標準輸入是終端機,則會以檔名提示您,並要求您確認要刪除檔案。 如果您鍵入y(若為 yes) ,則會刪除檔案,鍵入任何其他字元,且不會刪除檔案。 您不需要要移除之檔案的讀取或寫入權。 然而,您必須對包含此檔案的目錄具有寫入權。

如果檔案是符號鏈結,則會移除鏈結,但符號鏈結所參照的檔案或目錄仍會保留。 如果您在目錄中具有寫入權,則不需要寫入權即可刪除符號鏈結。

如果其中一個檔案.(點) 或..(點、點) 指定為 檔案 參數的基本名稱部分, rm 指令會將診斷訊息寫入標準錯誤,而不會對這類參數執行任何其他動作。

如果未指定 -f 旗標,且 檔案 參數沒有寫入權且標準輸入是工作站,或指定 -i 旗標,則 rm 指令會將提示寫入標準錯誤並從標準輸入讀取一行。 如果回應不是肯定的,則 rm 指令不會對現行檔案執行任何其他動作,並繼續處理下一個檔案。

如果設定目錄的組合位元,且該目錄不是由使用者所擁有,則無法移除其他使用者所擁有的檔案。

附註: rm 指令支援 - (橫線,橫線) 參數作為定界字元,指出旗標結尾。

嘗試移除已匯出供 NFS 第 4 版伺服器使用的檔案或目錄會失敗,並出現一則訊息指出資源忙碌。 必須先取消匯出檔案或目錄以供 NFS 第 4 版使用,然後才能移除該檔案或目錄。

旗標

項目 說明
-e 在刪除每一個檔案之後顯示一則訊息。
-f 在移除防寫檔案之前不提示。 如果指定的檔案不存在,則不顯示錯誤訊息或傳回錯誤狀態。 如果同時指定 -f-i 旗標,則指定的最後一個旗標會生效。
-i 在刪除每一個檔案之前提示您。 當您同時使用 -i-r 旗標時, rm 指令也會在刪除目錄之前提示。 如果同時指定 -i-f 旗標,則指定的最後一個旗標會生效。
項目 說明
-r 檔案 參數是目錄時,允許遞迴移除目錄及其內容。 此旗標相當於 -R 旗標。
-r 檔案 參數是目錄時,允許遞迴移除目錄及其內容。 此旗標相當於 -r 旗標。

結束狀態

這個指令會傳回下列結束值:

項目 說明
0 如果未指定 -f 旗標,則會移除所有具名目錄項目; 否則會移除所有現有的具名目錄項目。
>0 發生一個錯誤。

安全

注意 RBAC 使用者: 此指令可以執行特許作業。 只有專用使用者可以執行專用作業。 如需授權及專用權的相關資訊,請參閱 安全中的「特許指令資料庫」。 如需與這個指令相關聯之專用權及授權的清單,請參閱 lssecattr 指令或 getcmdattr 次指令。

範例

  1. 若要刪除檔案,請輸入:
    rm myfile
    如果此檔案有另一個鏈結,則檔案會保留在該名稱下,但名稱為myfile已移除。 如果:myfile是唯一的鏈結,檔案本身會被刪除。
  2. 若要刪除檔案而不先收到確認提示,請輸入:
    rm  -f core
    rm -f 指令嘗試移除指名的檔案之前,不會發出確認提示core. 不過,如果core檔案是防寫的,且您不是檔案的擁有者或您沒有 root 權限。 當 rm -f 指令嘗試移除不存在的檔案時,不會顯示任何錯誤訊息。
  3. 若要逐一刪除檔案,請輸入:
    rm  -i mydir/*
    在顯示每一個檔名之後,輸入y以刪除檔案,或按 Enter 鍵以保留它。
  4. 若要刪除目錄樹狀結構,請輸入:
    rm -ir manual
    這個指令會遞迴地移除manual目錄,提示您移除每一個檔案,然後移除manual目錄本身,例如:
    You:  rm -ir manual
    System: rm: Select files in directory manual? Enter y for yes.
    You:  y
    System: rm: Select files in directory manual/draft1? Enter y for yes.
    You:  y
    System: rm: Remove manual/draft1?
    You:  y
    System: rm: Remove manual/draft1/chapter1?
    You:  y
    System: rm: Remove manual/draft1/chapter2?
    You:  y
    System: rm: Select files in directory manual/draft2? Enter y for yes.
    You:  y
    System: rm: Remove manual/draft2?
    You:  y
    System: rm: Remove manual?
    You:  y
    這裡, rm 指令會先詢問您是否要搜尋manual目錄。 因為manual目錄包含目錄, rm 指令接著會要求搜尋許可權manual/draft1以取得要刪除的檔案,然後詢問您是否要刪除manual/draft1/chapter1manual/draft1/chapter2檔案。 rm 指令接著會要求許可權,以搜尋manual/draft2目錄。 然後要求許可權以刪除manual/draft1,manual/draft2,及manual 個目錄。

    如果您拒絕移除子目錄的許可權 (例如,manual/draft2) , rm 指令不會移除manual目錄。 相反地,您會看到下列訊息:rm: Directory manual not empty.

檔案

項目 說明
/usr/bin/rm 包含 rm 指令。