如何在 Linux 中刪除目錄

有幾種不一樣的方法能夠刪除 Linux 系統中的目錄。若是您使用桌面文件管理器(如 Gnome 的文件管理器或 KDE 的 Dolphin) ,則可使用管理器的圖形用戶界面刪除文件和目錄。可是,若是您正在使用無頭服務器或想要一次刪除多個目錄,最好的選擇是從命令行刪除目錄(文件夾)。

在這篇文章中,咱們將介紹如何使用 rmdir , rm 和 find 命令刪除 Linux 中的目錄。html

在你開始以前linux

使用桌面文件管理器刪除目錄時,該目錄實際上已移至「廢紙簍」,而且能夠輕鬆恢復。服務器

從命令行刪除文件或目錄時要格外當心,由於一旦使用本文中介紹的命令刪除目錄,就沒法徹底恢復。測試

在大多數 Linux 文件系統上,刪除目錄須要對目錄及其內容具備寫權限。不然您將收到「不容許操做」錯誤。命令行

必須使用反斜槓 (/) 轉義其中包含空格的目錄名稱。3d

刪除目錄 rmdirhtm

rmdir 是一個用於刪除空目錄的命令行實用程序。只有當目錄爲空時才須要刪除目錄,而不須要檢查目錄是否爲空。blog

要刪除目錄 rmdir ,請鍵入命令,而後鍵入要刪除的目錄的名稱。例如,要刪除名爲 linuxmi 的目錄,請鍵入:遞歸

linuxidc@linuxidc:~$ rmdir linuxmi

若是目錄不爲空,您將收到如下錯誤:rem

rmdir: 刪除 'linuxmi' 失敗: 目錄非空

如何在 Linux 中刪除目錄如何在 Linux 中刪除目錄

在這種狀況下,您須要使用該 rm 命令或手動刪除目錄內容,而後才能刪除它。

刪除目錄 rm

rm 是一個用於刪除文件和目錄的命令行實用程序。與命令不一樣 rmdir, rm 能夠刪除空目錄和非空目錄。

默認狀況下,在沒有任何選項的狀況下使用時 rm 不會刪除目錄 要刪除空目錄,請使用 -d(--dir) 選項。 若是要刪除非空目錄和其中的全部內容,請使用 -r(--recursive 或 -R) 選項。

例如,要刪除一個名爲 linuxmi 及其全部內容的目錄,您能夠鍵入:

rm -r linuxmi

若是目錄中的目錄或文件受到寫保護,系統將提示您確認刪除。要在不提示的狀況下刪除目錄,請使用如下 -f 選項:

rm -r dirname

要一次刪除多個目錄,請使用 rm 命令,後跟由空格分隔的目錄名稱。下面的命令將刪除每一個列出的目錄及其內容:

rm -r linuxmi linuxmi linuxidc

該 -i 選項告訴 rm 提示您確認刪除每一個子目錄和文件。若是目錄包含大量文件,這可能有點煩人,所以您能夠考慮使用 -I 在繼續刪除以前只提示您一次的選項。

rm -rI linuxidc

肯定要刪除目錄請輸入 y 並點擊 Enter 。

rm: remove 1 argument recursively? y

如何在 Linux 中刪除目錄如何在 Linux 中刪除目錄

您還可使用常規擴展來匹配和刪除多個目錄。例如,要刪除當前目錄中以全部 _bak 結尾的全部第一級目錄或者文件 ,您將使用如下命令:

rm -r *_bak

刪除目錄時使用常規擴展可能存在風險。建議首先使用該 ls 命令列出目錄,以便在運行 rm 命令以前查看將刪除的目錄。

刪除目錄 find

find 是一個命令行實用程序,容許您根據給定的表達式搜索文件和目錄,並對每一個匹配的文件或目錄執行操做。

最多見的狀況是使用 find 命令根據模式刪除目錄。例如,要刪除當前工做目錄中全部以 _cache 結尾的目錄,請運行:

find . -type d -name '*_cache' -exec rm -r {} +

如何在 Linux 中刪除目錄如何在 Linux 中刪除目錄

讓咱們分析一下上面的命令:
•.- 遞歸搜索當前工做目錄(.)。
•-type d - 將搜索限制爲目錄。
•-name '*_cache' - 僅搜索以 _cache 結尾的目錄
•-exec - 執行帶有可選參數的外部命令,在這種狀況下是 rm -r 。
•{} +- 將找到的文件追加到 rm 命令的末尾。

刪除全部空目錄

要刪除目錄樹中的全部空目錄,您將使用:

find /dir -type d -empty -delete

如下是對所用選項的解釋:
•/dir- 遞歸搜索 /dir 目錄。
•-type d - 將搜索限制爲目錄。
•-empty - 將搜索限制爲僅空目錄。
•-delete - 刪除子樹中全部找到的空目錄。 -delete 只能刪除空目錄。

請謹慎使用 -delete 選項。 find 命令行被計算爲表達式,若是首先添加該 -delete 選項,該命令將刪除指定起始點下方的全部內容。始終使用 -delete 做爲最後一個選項,在刪除以前,首先測試該命令而不使用該 -delete 選項。

/bin/rm: Argument list too long

使用該 rm 命令刪除包含大量文件的目錄時,會出現此錯誤消息。發生這種狀況是由於文件數大於命令行參數大小的系統限制。

這個問題有幾種不一樣的解決方案。例如,您能夠 cd 手動或使用循環逐個刪除子目錄到目錄。

最簡單的解決方案是首先使用該 find 命令刪除目錄中的全部文件,而後刪除目錄:

find /dir -type f -delete && rm -r /dir

總結

使用 rm 和 find 您能夠快速有效地刪除基於不一樣標準的目錄。

刪除目錄是一個簡單而簡單的過程,但您必須當心不要刪除重要數據。

本文地址:https://www.linuxprobe.com/linux-delete-content.html

相關文章
相關標籤/搜索