rmdir命令用于刪除空目錄,若目錄非空則報(bào)錯(cuò);使用rmdir 目錄名可刪除單個(gè)空目錄;用rmdir -p 可一次性刪除多層空目錄;若目錄非空需手動(dòng)清空或使用rm -r遞歸刪除;可批量刪除多個(gè)空目錄,各目錄以空格隔開(kāi)。
刪除空目錄是linux系統(tǒng)中一個(gè)常見(jiàn)的操作,而rmdir命令就是專(zhuān)門(mén)用來(lái)完成這個(gè)任務(wù)的。它只能刪除空目錄,也就是說(shuō),如果目錄里還有文件或者其他子目錄,rmdir就會(huì)報(bào)錯(cuò)并拒絕執(zhí)行。
如果你已經(jīng)確認(rèn)目標(biāo)目錄是空的,并希望用最直接的方式刪除它,那么rmdir是一個(gè)安全、簡(jiǎn)潔的選擇。
rmdir的基本用法
使用rmdir刪除一個(gè)空目錄非常簡(jiǎn)單,只需要在終端輸入:
rmdir 目錄名
比如你想刪除名為empty_dir的空目錄,可以這樣寫(xiě):
rmdir empty_dir
如果目錄刪除成功,不會(huì)有輸出;如果失敗,會(huì)提示類(lèi)似“Directory not empty”的錯(cuò)誤信息。
注意:
- 只能刪除空目錄
- 不會(huì)遞歸刪除(即不能同時(shí)刪掉父目錄和子目錄)
- 刪除前建議先用ls或find確認(rèn)目錄是否為空
一次性刪除多層空目錄
有時(shí)候我們會(huì)遇到一連串的空目錄,比如dir1/dir2/dir3,每個(gè)都是空的。這時(shí)候可以用rmdir -p參數(shù)來(lái)一次性刪除所有層級(jí):
rmdir -p dir1/dir2/dir3
這條命令會(huì)從最內(nèi)層開(kāi)始刪除,只要每一層都是空的,就能成功刪到最外層目錄。
?? 注意:
- 如果中間某一層有內(nèi)容,整個(gè)操作都會(huì)失敗
- 要確保路徑是從下往上的完整路徑
當(dāng)目錄非空時(shí)怎么辦?
正如前面所說(shuō),rmdir只適用于空目錄。如果你嘗試刪除一個(gè)包含文件或子目錄的目錄,會(huì)看到這樣的提示:
rmdir: failed to remove 'dirname': Directory not empty
這時(shí)候你就需要換其他命令了,比如:
- 先手動(dòng)清空目錄內(nèi)容,再使用rmdir
- 或者直接使用rm -r命令遞歸刪除整個(gè)目錄及其內(nèi)容:
rm -r dirname
不過(guò)要注意,rm -r會(huì)強(qiáng)制刪除目錄及其中的所有內(nèi)容,操作前務(wù)必確認(rèn),避免誤刪。
小技巧:批量刪除多個(gè)空目錄
如果你想一次刪除多個(gè)互不相關(guān)的空目錄,可以在命令后面列出所有目錄名,用空格隔開(kāi):
rmdir dir1 dir2 dir3
只要這些目錄都為空,就能全部被刪除。如果有任何一個(gè)不是空的,那對(duì)應(yīng)的那一項(xiàng)就會(huì)失敗,但不影響其他目錄的刪除。
基本上就這些。rmdir是個(gè)簡(jiǎn)單但實(shí)用的命令,適合清理結(jié)構(gòu)清晰、確實(shí)為空的目錄。用的時(shí)候注意別混用rm -r,也別誤刪有用的數(shù)據(jù)。