適合初學(xué)者的 Linux rmdir 命令示例
作為 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)文件夾不為空時如何處理失敗。最后,我們討論了如何使用正則表達式。