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

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

在本文中,我們將說明如何使用Linux刪除目錄 rmdirrmfind 命令。

在你開始之前 #

使用桌面文件管理器刪除目錄時,該目錄實際上已移至“廢紙rash”並且可以輕鬆恢復。

從命令行刪除文件或目錄時要格外小心,因為一旦使用本文介紹的命令刪除了目錄,就無法完全恢復該目錄。

在大多數Linux文件系統上,刪除目錄需要對該目錄及其內容具有寫權限。 否則,將出現“不允許操作”錯誤。

其中帶有空格的目錄名稱必須以反斜杠轉義(/)。

使用刪除目錄 rmdir

rmdir 是用於刪除空目錄的命令行實用程序。 當您只想刪除目錄為空而無需檢查目錄是否為空時,此功能很有用。

刪除目錄 rmdir,鍵入命令,然後輸入要刪除的目錄的名稱。 例如,刪除名為 dir1 您將輸入:

rmdir dir1

如果目錄不為空,則會出現以下錯誤:

rmdir: failed to remove 'dir1': No such file or directory

在這種情況下,您將需要使用 rm 命令或手動刪除目錄內容,然後再將其刪除。

使用刪除目錄 rm

rm 是用於刪除文件和目錄的命令行實用程序。 不像 rmdirrm 該命令可以刪除空目錄和非空目錄。

默認情況下,不帶任何選項使用時 rm 不刪除目錄。 要刪除空目錄,請使用 -d--dir)選項並刪除非空目錄,其所有內容均使用 -r--recursive 要麼 -R) 選項。

例如刪除名為 dir1 連同其所有內容,您將輸入:

rm -r dir1

如果目錄或目錄中的文件受寫保護,則將提示您確認刪除。 要刪除目錄而不提示您,請使用 -f 選項:

rm -rf dir1

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

rm -r dir1 dir2 dir3

-i 選項告訴 rm 提示您確認刪除每個子目錄和文件。 如果目錄中包含很多文件,這可能會有些煩人,因此您可以考慮使用 -I 選項,在繼續刪除之前只會提示您一次。

rm -rI dir1

刪除目錄類型 y 並擊中 Enter

rm: remove 1 argument recursively? y

您還可以使用常規擴展名來匹配和刪除多個目錄。 例如,要刪除當前目錄中以結尾的所有所有一級目錄 _bak,您將使用以下命令:

rm -r *_bak

刪除目錄時使用常規擴展可能會有風險。 建議首先列出帶有 ls 命令,以便您可以看到在運行前將刪除哪些目錄 rm 命令。

使用刪除目錄 find

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

最常見的情況是使用 find 命令根據模式刪除目錄。 例如,刪除所有以結尾的目錄 _cache 在當前工作目錄中,您將運行:

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

讓我們分析上面的命令:

  • /dir -在當前工作目錄中遞歸搜索(.)。
  • -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:參數列表太長

當您使用 rm 命令刪除包含大量文件的目錄。 發生這種情況是因為文件數大於命令行參數大小的系統限制。

有幾種不同的解決方案來解決此問題。 例如,您可以 cd 到目錄,然後手動或使用循環逐個刪除子目錄。

最簡單的解決方案是首先使用刪除目錄中的所有文件。 find 命令,然後刪除目錄:

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

結論#

rmfind 您可以根據不同條件快速有效地刪除目錄。

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

如果您有任何疑問或反饋,請隨時發表評論。

rm rmdir查找終端

Sidebar