Linux快速刪除空目錄


在Linux系統中很多空目錄會導致雜亂無章,其實這些空目錄是沒啥用的,在刪除這些空目錄時,手動搜索和刪除每個目錄都成為一項艱巨的任務。

使用命令行刪除目錄時,它們將被永久刪除,即它們不會被移動到垃圾箱。rmdir 和 rm 命令一次只能用於手動刪除一個或多個目錄。find 命令用於搜索所有空目錄,並使用單個命令將其全部刪除。下面來看一下是如何使用的。

1,刪除空目錄使用rmdir命令

rmdir 命令用於刪除空目錄。它只刪除空目錄,因此,如果目錄不為空,它將顯示目錄不為空的錯誤。使用此命令時,您不需要檢查空目錄,要使用rmdir命令。

[root@localhost sharplee]#rmdir test*

從上圖可以看出通過rmdir刪除目錄test開頭的空目錄,test5不是空目錄刪除的時候報錯不受空目錄。rmdir刪除目錄的時候不是空目錄是不會被刪除的。其實test5下面也有一個空目錄,有沒有啥辦法可以刪除這倆目錄。下面就來看一看rmdir加上參數能不能行。

[root@localhost sharplee]#rmdir -p  test5/test

從上圖可以看出通過rmdir -p test5/test,能夠刪除子目錄為空目錄以及父目錄為空的目錄,如果子目錄為空,父目錄不為空,父目錄不會被刪除。

在來看一個反例,test5目錄下有test1,test2目錄,test1目錄下有一個文件test,test2為空目錄,刪除test2,不能刪除test5,test5目錄不為空目錄,刪除test1目錄,test1目錄不為空目錄,下面有一個文件。

2,刪除空目錄使用rm命令

與 rmdir 命令不同,rm 命令用於刪除文件和目錄,無論是空的還是非空的。當使用不帶任何參數的 rm 命令時,它不會刪除目錄:

[root@localhost sharplee]# rm test5
rm: cannot remove ‘test5’: Is a directory
[root@localhost sharplee]#

通過上面的命令可以看出使用rm是不能刪除目錄的,刪除目錄需要在rm 后面加上參數-d 。

[root@localhost sharplee]# rm -d test*

 通過上圖看出rm -d 刪除空目錄,下面接着看一下test5目錄不是空目錄,目錄下有一個文件tt看能否刪除目錄。

3,刪除空目錄使用find命令

查找命令用於搜索文件和目錄。使用查找命令和一些參數,我們可以搜索系統中的所有空目錄並刪除它們。

[root@localhost sharplee]# find path -type d -empty

下面是對上面的命令的一個解釋:

  • path : 要搜索的目錄的路徑 
  • -type d: 將搜索限制為僅目錄(也可以使用 -type f 搜索文件)
  • -empty:僅將搜索限制為空目錄

[root@localhost test1]# find /home/sharplee/test1 -type d -empty

通過上面可以看出使用該命令可以查找出該目錄下的所有空目錄。接下來看看如何刪除,其實很簡單,在命令后面加上一個-delete即可。

[root@localhost sharplee]# find path -type d -empty -delete

 總結: 通過以上3種方式都可以刪除空目錄,rmdir 和rm只能對單個目錄或多個目錄進行一個一個刪除而find 命令可以查出所有的空目錄一次進行刪除。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM