8個(gè)你不一定全都了解的rm命令示例
刪除文件和復(fù)制/移動(dòng)文件一樣,都是很基礎(chǔ)的操作。在 Linux 中,有一個(gè)專(zhuān)門(mén)的命令 rm
,可用于完成所有刪除相關(guān)的操作。在本文中,我們將用些容易理解的例子來(lái)討論這個(gè)命令的基本使用。
但在我們開(kāi)始前,值得指出的是本文所有示例都在 Ubuntu 16.04 LTS 中測(cè)試過(guò)。
Linux rm 命令概述
通俗的講,我們可以認(rèn)為 rm
命令是用于刪除文件和目錄的。下面是此命令的語(yǔ)法:
rm [選項(xiàng)]... [要?jiǎng)h除的文件/目錄](méi)...
下面是命令使用說(shuō)明:
GUN 版本
rm
命令的手冊(cè)文檔。rm
刪除每個(gè)指定的文件,默認(rèn)情況下不刪除目錄。當(dāng)刪除的文件超過(guò)三個(gè)或者提供了選項(xiàng)
-r
、-R
或--recursive
(LCTT 譯注:表示遞歸刪除目錄中的文件)時(shí),如果給出-I
(LCTT 譯注:大寫(xiě)的 I)或--interactive=once
選項(xiàng)(LCTT 譯注:表示開(kāi)啟交互一次),則rm
命令會(huì)提示用戶(hù)是否繼續(xù)整個(gè)刪除操作,如果用戶(hù)回應(yīng)不是確認(rèn)(LCTT 譯注:即沒(méi)有回復(fù)y
),則整個(gè)命令立刻終止。另外,如果被刪除文件是不可寫(xiě)的,標(biāo)準(zhǔn)輸入是終端,這時(shí)如果沒(méi)有提供
-f
或--force
選項(xiàng),或者提供了-i
(LCTT 譯注:小寫(xiě)的 i) 或--interactive=always
選項(xiàng),rm
會(huì)提示用戶(hù)是否要?jiǎng)h除此文件,如果用戶(hù)回應(yīng)不是確認(rèn)(LCTT 譯注:即沒(méi)有回復(fù)y
),則跳過(guò)此文件。
下面這些問(wèn)答式例子會(huì)讓你更好的理解這個(gè)命令的使用。
Q1. 如何用 rm 命令刪除文件?
這是非常簡(jiǎn)單和直觀的。你只需要把文件名(如果文件不是在當(dāng)前目錄中,則還需要添加文件路徑)傳入給 rm
命令即可。
(LCTT 譯注:可以用空格隔開(kāi)傳入多個(gè)文件名稱(chēng)。)
rm 文件1 文件2 ...
如:
rm testfile.txt
How to remove files using rm command
Q2. 如何用 rm
命令刪除目錄?
如果你試圖刪除一個(gè)目錄,你需要提供 -r
選項(xiàng)。否則 rm
會(huì)拋出一個(gè)錯(cuò)誤告訴你正試圖刪除一個(gè)目錄。
(LCTT 譯注:-r
表示遞歸地刪除目錄下的所有文件和目錄。)
rm -r [目錄名稱(chēng)]
如:
rm -r testdir
How to remove directories using rm command
Q3. 如何讓刪除操作前有確認(rèn)提示?
如果你希望在每個(gè)刪除操作完成前都有確認(rèn)提示,可以使用 -i
選項(xiàng)。
rm -i [文件/目錄](méi)
比如,你想要?jiǎng)h除一個(gè)目錄“testdir”,但需要每個(gè)刪除操作都有確認(rèn)提示,你可以這么做:
rm -r -i testdir
How to make rm prompt before every removal
Q4. 如何讓 rm 忽略不存在的文件或目錄?
如果你刪除一個(gè)不存在的文件或目錄時(shí),rm
命令會(huì)拋出一個(gè)錯(cuò)誤,如:
Linux rm command example
然而,如果你愿意,你可以使用 -f
選項(xiàng)(LCTT 譯注:即 “force”)讓此次操作強(qiáng)制執(zhí)行,忽略錯(cuò)誤提示。
rm -f [文件...]
How to force rm to ignore nonexistent files
Q5. 如何讓 rm 僅在某些場(chǎng)景下確認(rèn)刪除?
選項(xiàng) -I
,可保證在刪除超過(guò) 3 個(gè)文件時(shí)或遞歸刪除時(shí)(LCTT 譯注: 如刪除目錄)僅提示一次確認(rèn)。
比如,下面的截圖展示了 -I
選項(xiàng)的作用——當(dāng)兩個(gè)文件被刪除時(shí)沒(méi)有提示,當(dāng)超過(guò) 3 個(gè)文件時(shí)會(huì)有提示。
How to make rm prompt only in some scenarios
Q6. 當(dāng)刪除根目錄是 rm 是如何工作的?
當(dāng)然,刪除根目錄(/
)是 Linux 用戶(hù)最不想要的操作。這也就是為什么默認(rèn) rm
命令不支持在根目錄上執(zhí)行遞歸刪除操作。(LCTT 譯注:早期的 rm
命令并無(wú)此預(yù)防行為。)
How rm works when dealing with root directory
然而,如果你非得完成這個(gè)操作,你需要使用 --no-preserve-root
選項(xiàng)。當(dāng)提供此選項(xiàng),rm
就不會(huì)特殊處理根目錄(/
)了。
假如你想知道在哪些場(chǎng)景下 Linux 用戶(hù)會(huì)刪除他們的根目錄,點(diǎn)擊這里。
Q7. 如何讓 rm 僅刪除空目錄?
假如你需要 rm
在刪除目錄時(shí)僅刪除空目錄,你可以使用 -d
選項(xiàng)。
rm -d [目錄](méi)
下面的截圖展示 -d
選項(xiàng)的用途——僅空目錄被刪除了。
How to make rm only remove empty directories
Q8. 如何讓 rm 顯示當(dāng)前刪除操作的詳情?
如果你想 rm 顯示當(dāng)前操作完成時(shí)的詳細(xì)情況,使用 -v
選項(xiàng)可以做到。
rm -v [文件/目錄](méi)
如:
How to force rm to emit details of operation it is performing
結(jié)論
考慮到 rm
命令提供的功能,可以說(shuō)其是 Linux 中使用頻率***的命令之一了(就像 cp 和 mv
一樣)。在本文中,我們涉及到了其提供的幾乎所有主要選項(xiàng)。rm
命令有些學(xué)習(xí)曲線,因此在你日常工作中開(kāi)始使用此命令之前 你將需要花費(fèi)些時(shí)間去練習(xí)它的選項(xiàng)。更多的信息,請(qǐng)點(diǎn)擊此命令的 man 手冊(cè)頁(yè)。