rm 指令
用途
移除 (解除鏈結) 檔案或目錄。
語法
說明
rm 指令會從目錄中移除指定 檔案 參數的項目。 如果項目是檔案的最後一個鏈結,則會刪除檔案。 如果您沒有檔案的寫入權,且標準輸入是終端機,則會以檔名提示您,並要求您確認要刪除檔案。 如果您鍵入y(若為 yes) ,則會刪除檔案,鍵入任何其他字元,且不會刪除檔案。 您不需要要移除之檔案的讀取或寫入權。 然而,您必須對包含此檔案的目錄具有寫入權。
如果檔案是符號鏈結,則會移除鏈結,但符號鏈結所參照的檔案或目錄仍會保留。 如果您在目錄中具有寫入權,則不需要寫入權即可刪除符號鏈結。
如果其中一個檔案.(點) 或..(點、點) 指定為 檔案 參數的基本名稱部分, rm 指令會將診斷訊息寫入標準錯誤,而不會對這類參數執行任何其他動作。
如果未指定 -f 旗標,且 檔案 參數沒有寫入權且標準輸入是工作站,或指定 -i 旗標,則 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 次指令。
範例
- 若要刪除檔案,請輸入:
如果此檔案有另一個鏈結,則檔案會保留在該名稱下,但名稱為myfile已移除。 如果:myfile是唯一的鏈結,檔案本身會被刪除。rm myfile
- 若要刪除檔案而不先收到確認提示,請輸入:rm -f core在 rm -f 指令嘗試移除指名的檔案之前,不會發出確認提示core. 不過,如果core檔案是防寫的,且您不是檔案的擁有者或您沒有 root 權限。 當 rm -f 指令嘗試移除不存在的檔案時,不會顯示任何錯誤訊息。
- 若要逐一刪除檔案,請輸入:rm -i mydir/*在顯示每一個檔名之後,輸入y以刪除檔案,或按 Enter 鍵以保留它。
- 若要刪除目錄樹狀結構,請輸入:
這個指令會遞迴地移除manual目錄,提示您移除每一個檔案,然後移除manual目錄本身,例如:rm -ir manual
這裡, rm 指令會先詢問您是否要搜尋manual目錄。 因為manual目錄包含目錄, rm 指令接著會要求搜尋許可權manual/draft1以取得要刪除的檔案,然後詢問您是否要刪除manual/draft1/chapter1和manual/draft1/chapter2檔案。 rm 指令接著會要求許可權,以搜尋manual/draft2目錄。 然後要求許可權以刪除manual/draft1,manual/draft2,及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
如果您拒絕移除子目錄的許可權 (例如,manual/draft2) , rm 指令不會移除manual目錄。 相反地,您會看到下列訊息:rm: Directory manual not empty.
檔案
項目 | 說明 |
---|---|
/usr/bin/rm | 包含 rm 指令。 |