在前面的教程之一中,我們已經解釋瞭如何在 Linux 中創建目錄。 現在讓我們檢查如何在 Linux 中刪除一個目錄,該目錄要么是空的,要么是帶有文件的子目錄。 這尤其是當您需要釋放系統上的一些空間以保存更多文件或安裝其他軟件包時。
在 Linux 中有很多方法可以刪除目錄。 如果您使用的是 GUI 系統(例如 GNOME、MATE 或 KDE Plasma),則可以使用文件管理器,或者您可以通過終端進行操作。
當使用 GUI 系統刪除目錄時,它會導致崩潰,相當於 Windows 中的回收站,可以從中恢復。 但是,在最小系統上的命令行上工作時情況有所不同,因為一旦刪除目錄,它就會被永久刪除並且無法恢復。
本教程將帶您了解在 Linux 中刪除目錄的各種方法。
使用 rmdir 命令刪除目錄
rmdir 命令是“remove directory”的縮寫,是一個用於刪除空目錄的命令行工具。 當且僅當目錄為空時,操作才會成功。 刪除目錄的語法如下:
$ sudo rmdir directory_name
例如,要刪除名為“mydirectory”的空目錄,請運行以下命令:
$ sudo rmdir mydirectory
如果目錄不為空,則會在屏幕上顯示錯誤,如下所示:
'rmdir: failed to remove ‘mydirectory’: Directory not empty'
該錯誤清楚地表明該目錄包含文件或文件夾或兩者。
使用 rm 命令刪除目錄
移除的簡稱, rm 命令用於刪除空目錄和非空目錄。
rm 命令通常用於在 Linux 中刪除文件。 但是,您可以傳遞一些可以幫助您刪除目錄的參數。 為了 example, 要遞歸刪除目錄(刪除目錄及其內容),請使用遞歸選項 -r
(-R 或 –recursive)如下所示。
$ sudo rm -r mydirectory

如果目錄被寫保護,系統會提示您是否繼續刪除該目錄內的文件以及整個目錄。 為免去您不斷遇到此類提示的煩惱和不便,請添加 -f
選項以在不提示的情況下強制刪除。
$ sudo rm -rf mydirectory

此外,您可以在單個命令中一次性刪除多個目錄,如下面的命令所示。 該命令會刪除所有目錄及其子目錄而不提示刪除。
$ sudo rm -rf mydirectory1 mydirectory2 mydirectory3

為了更加謹慎,您可以使用 -i
提示刪除目錄和子目錄的選項。 但是,正如我們之前看到的,這可能會很煩人,尤其是當您有多個子文件夾和文件時。 為了解決這個不便,請使用 -I
標誌只提示你一次。
$ sudo rm -rI mydirectory/

當你打 y
對於“是”,該命令將刪除目錄中的所有子文件夾和文件,而不會進一步提示。
要刪除空目錄,請傳遞 -d
選項如下圖。
$ sudo rm -d mydirectory

使用查找命令
Find 命令是一個命令行工具,可幫助用戶根據特定的搜索條件/模式或表達式搜索文件和目錄。 此外,該命令可用於搜索目錄並根據指定的搜索條件刪除它們。
為了 example, 要刪除當前目錄中名為“mydirectory”的目錄,請運行以下命令。
$ sudo find . -type d -name "mydirectory" -exec rm -rf {} +

讓我們分解命令中的參數
( . ) – 這表示正在執行搜索操作的目錄。 如果要在當前目錄中執行搜索,請使用句號 (.)
-d型 – 這將搜索操作設置為僅搜索目錄。
-名稱 – 這指定目錄的名稱。
-exec rm -rf – 這將刪除所有目錄及其內容。
{} +- – 這會附加在 rm 命令末尾找到的所有文件。
讓我們再來一個 example:
刪除一個空目錄
如果要刪除所有空目錄,請使用以下命令:
$ sudo find. -type d -empty -delete

再次,讓我們分解一下
. —— 這將在當前工作目錄中遞歸搜索
-d 型 – 這將只搜索目錄
-空的 – 這將搜索模式限制為僅空目錄
-刪除 – 這將刪除找到的所有空目錄,包括子目錄。
如果您有很多空目錄,則使用 shell 腳本刪除空目錄。
結論
在本教程中,我們研究瞭如何使用 rm、rmdir 和 find 命令在 Linux 中刪除目錄。 我們希望您可以輕鬆地刪除 Linux 中的目錄,無論它是否包含文件和其他子目錄,或者只是它是空的。 嘗試一下,然後將您的反饋反饋給我們。