Linux 中刪除目錄的多種方法
有幾種不同的方法可以刪除 Linux 系統中的目錄。如果您使用桌面檔案管理器(如 Gnome 的檔案管理器或 KDE 的 Dolphin) ,則可以使用管理器的圖形使用者介面刪除檔案和目錄。但是,如果您正在使用無頭伺服器或想要一次刪除多個目錄,最好的選擇是從命令行刪除目錄(資料夾)。
在這篇文章中,我們將介紹如何使用 rmdir , rm 和 find 命令刪除 Linux 中的目錄。
在你開始之前
使用桌面檔案管理器刪除目錄時,該目錄實際上已移至“廢紙簍”,並且可以輕鬆恢復。
從命令列刪除檔案或目錄時要格外小心,因為一旦使用本文中介紹的命令刪除目錄,就無法完全恢復。
在大多數 Linux 檔案系統上,刪除目錄需要對目錄及其內容具有寫許可權。否則您將收到“不允許操作”錯誤。
必須使用反斜槓 (/) 轉義其中包含空格的目錄名稱。
刪除目錄 rmdir
rmdir 是一個用於刪除空目錄的命令列實用程式。只有當目錄為空時才需要刪除目錄,而不需要檢查目錄是否為空。
要刪除目錄 rmdir ,請鍵入命令,然後鍵入要刪除的目錄的名稱。例如,要刪除名為 linuxmi 的目錄,請鍵入:
linuxidc@linuxidc:~$ rmdir linuxmi
如果目錄不為空,您將收到以下錯誤:
rmdir: 刪除 'linuxmi' 失敗: 目錄非空
在這種情況下,您需要使用該 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
您還可以使用常規擴充套件來匹配和刪除多個目錄。例如,要刪除當前目錄中以所有 _bak 結尾的所有第一級目錄或者檔案 ,您將使用以下命令:
rm -r *_bak
刪除目錄時使用常規擴充套件可能存在風險。建議首先使用該 ls 命令列出目錄,以便在執行 rm 命令之前檢視將刪除的目錄。
刪除目錄 find
find 是一個命令列實用程式,允許您根據給定的表示式搜尋檔案和目錄,並對每個匹配的檔案或目錄執行操作。
最常見的情況是使用 find 命令根據模式刪除目錄。例如,要刪除當前工作目錄中所有以 _cache 結尾的目錄,請執行:
find . -type d -name '*_cache' -exec rm -r {} +
讓我們分析一下上面的命令:
•.- 遞迴搜尋當前工作目錄(.)。
•-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 您可以快速有效地刪除基於不同標準的目錄。
刪除目錄是一個簡單而簡單的過程,但您必須小心不要刪除重要資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69908604/viewspace-2660404/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 幾種刪除Linux目錄的方法Linux
- 如何在 Linux 中刪除目錄Linux
- Linux誤刪除/(根)目錄下usr目錄系統救援方法Linux
- linux 刪除檔案或目錄——rmLinux
- Linux rm(刪除檔案/目錄) 命令Linux
- linux 刪除問題 一次刪除多個目錄下的相同副檔名的檔案Linux
- linux刪除資料夾命令是什麼 linux刪除一個目錄的命令Linux
- Linux rm命令:刪除檔案或目錄Linux
- LINUX 使用批量刪除檔案的幾種方法Linux
- Python 中刪除列表元素的三種方法Python
- linux刪除資料夾命令是什麼 linux刪除檔案和目錄命令大全介紹Linux
- Linux中多種方法實時記錄歷史命令Linux
- fs模組之刪除目錄
- Linux刪除多餘核心Linux
- c# 刪除某個資料夾下所有空目錄,解決因刪除空目錄後上一組成空目錄沒有刪除的情況C#
- linux中crontab計劃任務怎麼刪除?linux中crontab計劃任務的刪除方法Linux
- 如何刪除win10目錄中的資料夾_win10刪除開始選單裡資料夾的方法Win10
- 從電腦中刪除勒索軟體的5種方法
- 刪除指定目錄下指定字尾的檔案
- 怎麼刪除電腦中開啟的檔案記錄?刪除電腦中開啟的檔案記錄方法教程
- Linux多ip地址如何刪除多餘ipLinux
- Python教程:拆分多級目錄的方法Python
- Linux如何在目錄下靈活建立、瀏覽、刪除百萬個檔案Linux
- 獲取Linux系統中目錄檔案大小的方法Linux
- Flutter誤刪除android/ios目錄怎麼辦?FlutterAndroidiOS
- [20180707]刪除結尾帶.的檔案與目錄.txt
- Linux下高效切換目錄的方法Linux
- linux快捷進入長目錄的方法Linux
- Win10如何刪除字型_win10刪除字型的兩種方法Win10
- 刪除當前目錄下的所有可執行檔案
- Linux 中模擬多種系統負載的方法Linux負載
- mySql刪除多個表 刪除多個欄位的SQLMySql
- C#中刪除DataTable中的行的方法C#
- 在 Linux 中如何刪除檔案中的空行Linux
- 題目:刪除排序陣列中的重複項排序陣列
- 如何獲取 Linux 中的目錄大小Linux
- 在Linux中,rsync同步時,如何刪除目標資料多出來的資料,即源上不存在,但目標卻存在的檔案或者目錄?Linux
- MySQL防止delete命令刪除資料的兩種方法MySqldelete