在Linux系統(tǒng)中刪除目錄的方法都有哪些
今天馬哥教育要跟大家分享的文章是關(guān)于在Linux系統(tǒng)中刪除目錄的方法都有哪些?熟悉Linux運(yùn)維的小伙伴們都知道,有幾種不同的方法可以刪除?Linux?系統(tǒng)中的目錄。如果您使用桌面文件管理器(如Gnome的文件管理器或KDE的Dolphin),則可以使用管理器的圖形用戶(hù)界面刪除文件和目錄。但是,如果您正在使用無(wú)頭服務(wù)器或想要一次刪除多個(gè)目錄,最好的選擇是從命令行刪除目錄(文件夾)。 Linux入門(mén)新手和正在Linux學(xué)習(xí)的小伙伴快來(lái)看一看吧,希望能夠?qū)Υ蠹矣兴鶐椭?/p>
在這篇文章中,我們將介紹如何使用rmdir,rm和find?命令刪除Linux中的目錄。
從命令行刪除文件或目錄時(shí)要格外小心,因?yàn)橐坏┦褂帽疚闹薪榻B的命令刪除目錄,就無(wú)法完全恢復(fù)。
在大多數(shù)Linux文件系統(tǒng)上,刪除目錄需要對(duì)目錄及其內(nèi)容具有寫(xiě)權(quán)限。否則您將收到“不允許操作”錯(cuò)誤。必須使用反斜杠(/)轉(zhuǎn)義其中包含空格的目錄名稱(chēng)。下面就來(lái)和小編一起看一看吧!
一、刪除目錄rmdir
rmdir是一個(gè)用于刪除空目錄的命令行實(shí)用程序。只有當(dāng)目錄為空時(shí)才需要?jiǎng)h除目錄,而不需要檢查目錄是否為空。
要?jiǎng)h除目錄rmdir,請(qǐng)鍵入命令,然后鍵入要?jiǎng)h除的目錄的名稱(chēng)。例如,要?jiǎng)h除名為L(zhǎng)inuxmi的目錄,請(qǐng)鍵入:
Linuxidc@Linuxidc:~$ rmdir Linuxmi
如果目錄不為空,您將收到以下錯(cuò)誤:
rmdir:刪除'Linuxmi'失敗:目錄非空

在這種情況下,您需要使用該rm命令或手動(dòng)刪除目錄內(nèi)容,然后才能刪除它。
二、刪除目錄rm
rm是一個(gè)用于刪除文件和目錄的命令行實(shí)用程序。與命令不同rmdir, rm可以刪除空目錄和非空目錄。
默認(rèn)情況下,在沒(méi)有任何選項(xiàng)的情況下使用時(shí)rm不會(huì)刪除目錄要?jiǎng)h除空目錄,請(qǐng)使用-d(--dir)選項(xiàng)。?如果要?jiǎng)h除非空目錄和其中的所有內(nèi)容,請(qǐng)使用-r(--recursive或-R)選項(xiàng)。
例如,要?jiǎng)h除一個(gè)名為L(zhǎng)inuxmi及其所有內(nèi)容的目錄,您可以鍵入:
rm -r Linuxmi
如果目錄中的目錄或文件受到寫(xiě)保護(hù),系統(tǒng)將提示您確認(rèn)刪除。要在不提示的情況下刪除目錄,請(qǐng)使用以下-f選項(xiàng):
rm -r dirname
要一次刪除多個(gè)目錄,請(qǐng)使用rm命令,后跟由空格分隔的目錄名稱(chēng)。下面的命令將刪除每個(gè)列出的目錄及其內(nèi)容:
rm -r Linuxmi Linuxmi Linuxidc
該-i選項(xiàng)告訴rm提示您確認(rèn)刪除每個(gè)子目錄和文件。如果目錄包含大量文件,這可能有點(diǎn)煩人,因此您可以考慮使用-I在繼續(xù)刪除之前只提示您一次的選項(xiàng)。
rm -rI Linuxidc
確定要?jiǎng)h除目錄請(qǐng)輸入y并點(diǎn)擊Enter。
rm: remove 1 argument recursively? y

您還可以使用常規(guī)擴(kuò)展來(lái)匹配和刪除多個(gè)目錄。例如,要?jiǎng)h除當(dāng)前目錄中以所有_bak結(jié)尾的所有第一級(jí)目錄或者文件,您將使用以下命令:
rm -r *_bak
刪除目錄時(shí)使用常規(guī)擴(kuò)展可能存在風(fēng)險(xiǎn)。建議首先使用該ls命令列出目錄,以便在運(yùn)行rm命令之前查看將刪除的目錄。
三、刪除目錄find
find是一個(gè)命令行實(shí)用程序,允許您根據(jù)給定的表達(dá)式搜索文件和目錄,并對(duì)每個(gè)匹配的文件或目錄執(zhí)行操作。
最常見(jiàn)的情況是使用find命令根據(jù)模式刪除目錄。例如,要?jiǎng)h除當(dāng)前工作目錄中所有以_cache結(jié)尾的目錄,請(qǐng)運(yùn)行:
find . -type d -name '*_cache' -exec rm -r {} +

讓我們分析一下上面的命令:
?.-遞歸搜索當(dāng)前工作目錄(.)。
?-type d -將搜索限制為目錄。
?-name '*_cache' -僅搜索以_cache結(jié)尾的目錄
?-exec -執(zhí)行帶有可選參數(shù)的外部命令,在這種情況下是rm -r。
?{} +-將找到的文件追加到rm命令的末尾。
四、刪除所有空目錄
要?jiǎng)h除目錄樹(shù)中的所有空目錄,您將使用:
find /dir -type d -empty -delete
以下是對(duì)所用選項(xiàng)的解釋?zhuān)?br>?/dir-遞歸搜索/dir目錄。
?-type d -將搜索限制為目錄。
?-empty -將搜索限制為僅空目錄。
?-delete -刪除子樹(shù)中所有找到的空目錄。?-delete只能刪除空目錄。
請(qǐng)謹(jǐn)慎使用-delete選項(xiàng)。?find命令行被計(jì)算為表達(dá)式,如果首先添加該-delete選項(xiàng),該命令將刪除指定起始點(diǎn)下方的所有內(nèi)容。始終使用-delete作為最后一個(gè)選項(xiàng),在刪除之前,首先測(cè)試該命令而不使用該-delete選項(xiàng)。
/bin/rm: Argument list too long
使用該rm命令刪除包含大量文件的目錄時(shí),會(huì)出現(xiàn)此錯(cuò)誤消息。發(fā)生這種情況是因?yàn)槲募?shù)大于命令行參數(shù)大小的系統(tǒng)限制。
這個(gè)問(wèn)題有幾種不同的解決方案。例如,您可以cd手動(dòng)或使用循環(huán)逐個(gè)刪除子目錄到目錄。
最簡(jiǎn)單的解決方案是首先使用該find命令刪除目錄中的所有文件,然后刪除目錄:
find /dir -type f -delete && rm -r /dir
總結(jié)
使用rm和find您可以快速有效地刪除基于不同標(biāo)準(zhǔn)的目錄。
刪除目錄是一個(gè)簡(jiǎn)單而簡(jiǎn)單的過(guò)程,但您必須小心不要?jiǎng)h除重要數(shù)據(jù)。
以上就是馬哥教育今天為大家分享的關(guān)于在Linux系統(tǒng)中刪除目錄的方法都有哪些的文章,希望本篇文章能夠?qū)φ趶氖翷inux相關(guān)工作的小伙伴們有所幫助。想要了解更多Linux相關(guān)知識(shí)記得關(guān)注馬哥教育官網(wǎng)。最后祝愿小伙伴們工作順利!
聲明:文章來(lái)源于網(wǎng)絡(luò),侵刪!