適合初學(xué)者的 Linux rmdir 命令示例

yanding 2023-07-19 361

作為 Linux 用戶,我們定期與文件和文件夾進行交互。用戶經(jīng)常執(zhí)行的一項任務(wù)是從文件系統(tǒng)中刪除文件夾。但是,刪除數(shù)據(jù)庫時我們需要格外小心。因為不小心刪除可能會導(dǎo)致數(shù)據(jù)丟失。


在這篇適合初學(xué)者的文章中,我們將了解 rmdir 命令。我們還將考慮一些可以在日常生活中使用的實際例子。


rmdir 命令與其他 Linux 命令具有相同的語法。在高層次上,它分為兩個部分——選項和辯論:


$ rmdir [選項] ... <目錄1> <目錄2> ...

這里方括號代表([])可選參數(shù),而方括號(<>)代表強制參數(shù)。


Linux 中 rmdir 命令的一般使用

顧名思義,rmdir 命令用于刪除目錄。但是,需要注意的是,它只能刪除空數(shù)據(jù)庫。在本節(jié)中,我們將看到 rmdir 命令的主要用法。



首先,創(chuàng)建幾個空白文件夾:


$ mkdir dir1 dir2 dir3 dir4

讓我們檢查是否創(chuàng)建了必要的文件夾:


$ ls -l

現(xiàn)在,讓我們卸載dir1文件夾,看看它是否被卸載:


$ rmdir dir1

$ ls -l

同樣,我們可以使用 rmdir 命令一次性刪除多個空目錄。


讓我們刪除其余的文件夾:


$ rmdir dir2 dir3 dir4

最后,檢查所有文件夾是否已被刪除:


$ ls -l

這里我們可以看到ls命令沒有指定任何目錄。



在上一節(jié)中,我們使用 ls 命令來確認刪除文件夾。然而,僅僅為了驗證之前代碼的功能而再創(chuàng)建一個代碼是沒有意義的。


在這種情況下,我們可以使用 select 啟用詳細模式-v,它為每個處理的目錄提供診斷。


讓我們創(chuàng)建與之前創(chuàng)建的相同的目錄結(jié)構(gòu):


$ mkdir dir1 dir2 dir3 dir4


現(xiàn)在,讓我們刪除啟用了詳細模式的目錄:


$ rmdir -v dir1 dir2 dir3 dir4

$ ls -l

從上述披露中,我們可以得出結(jié)論,所有文件夾均已被刪除。



我們通常在文件系統(tǒng)上創(chuàng)建子目錄,這使我們能夠以正確的順序組織數(shù)據(jù)。讓我們看看如何使用空子目錄。


正如第一個示例中所討論的,我們可以使用 rmdir 命令刪除多個目錄。然而,當(dāng)小站點數(shù)量較多時,情況就會變得棘手。


在這些情況下,我們可以使用-pselect,它會刪除庫和所有祖先。讓我們通過一個例子來理解這一點。


首先,創(chuàng)建一個子目錄層次結(jié)構(gòu):


$ mkdir -p dir1/dir2/dir3/dir4/dir5

在本例中,我們使用-poption 和 mkdir 命令創(chuàng)建子目錄結(jié)構(gòu)。


讓我們同時關(guān)閉所有這些網(wǎng)站:


$ rmdir -p -v dir1/dir2/dir3/dir4/dir5


rmdir:刪除目錄,'dir1/dir2/dir3/dir4/dir5'

rmdir:刪除目錄“dir1/dir2/dir3/dir4”

rmdir:刪除目錄“dir1/dir2/dir3”

rmdir:刪除目錄“dir1/dir2”

rmdir:刪除目錄“dir1”

此時,詳細模式會刪除所有 dir5 目錄及其祖先目錄。



我們已經(jīng)知道 rmdir 只能刪除空目錄。任何刪除非空數(shù)據(jù)庫的嘗試都會導(dǎo)致錯誤。雖然這可以防止數(shù)據(jù)丟失,但在極少數(shù)情況下可能會導(dǎo)致問題。



例如,如果我們嘗試從 Jenkins 正在運行的腳本中刪除非空文件夾,則作業(yè)將報告失敗。


為了練習(xí)這一點,讓我們嘗試刪除一個非空文件夾:


$ mkdir -p dir1/dir2/dir3/dir4/dir5

$ rmdir dir1


rmdir:無法刪除“dir1”:目錄不為空

對于此類錯誤,我們可以使用--ignore-fail-on-non-empty該選項,該選項會忽略由于非空文件夾而發(fā)生的所有故障。


讓我們在命令中使用此選項并檢查返回值:


$ rmdir --ignore-fail-on-non-empty dir1

$回聲$?


0

在此示例中,我們可以看到該命令沒有報告任何錯誤,并且返回值為零表示該命令成功執(zhí)行。但需要注意的是,此選項僅抑制錯誤,并不會刪除非空文件夾。



與其他 Linux 命令一樣,我們可以將正則表達式與 rmdir 命令一起使用。我們看看下面兩個正則表達式是如何使用的:


?– 它與一個字母完全匹配。

*– 匹配零次或多次出現(xiàn)的先前字符。

首先,創(chuàng)建幾個空白文件夾:


$ mkdir dir1 dir2 dir-01 dir-02

現(xiàn)在,讓我們使用?正則表達式和字符串 'dir' 來提取 dir1 和 dir2 目錄:


$ rmdir -v 目錄?


rmdir:刪除目錄“dir1”

rmdir:刪除目錄“dir2”

在這里我們可以看到該命令刪除了相關(guān)文件夾。


接下來,使用*正則表達式刪除其他兩個文件夾:


$ rmdir -v 目錄 -*


rmdir:刪除目錄“dir-01”

rmdir:刪除目錄“dir-02”

在此示例中,我們可以看到其他兩個文件夾已被刪除。



在本節(jié)中,我們僅討論兩個正則表達式的使用。但是,我們還可以將其他標準的標準表達式與 rmdir 命令一起使用。


在這篇文章中,我們首先了解一下rmdir命令的基本用法。然后我們討論了詳細模式和刪除子目錄。接下來我們看看當(dāng)文件夾不為空時如何處理失敗。最后,我們討論了如何使用正則表達式。

言鼎科技

The End