天天看點

在linux目錄行中找空目錄

作者:LinkSLA智能運維管家

在 Linux 系統中,出現空的目錄這是很正常的事情,而且,也是有辦法一次性把它們都找出來的。

但是,僅僅列出空目錄并不是我們的目的,我們今天了解一下如何删除這些空的目錄。

在Linux中查找空目錄

查找空間目錄,可以使用 find 指令,再結合其 -empty 選項,如下所示:

find /home/sagar/Files -type d -empty           
在linux目錄行中找空目錄

上述指令中,-type d 選項要求隻列出目錄。

查找空檔案

我們上文剛剛提到,-type 選項後面跟 d 參數是搜尋目錄,将 d 改為 f 即可搜尋檔案。

find /home/sagar/Files -type f -empty           

使用 find 指令删除空間檔案和目錄

使用 find 指令檢索出結果,然後再使用 -delete 選項即可将其删除。比如,删除空目錄,可參照如下指令:

find /home/sagar/Files -empty -type d -delete           
在linux目錄行中找空目錄

使用 xargs 和 find -exec 指令删除空檔案和目錄

find 和 exec 指令的結合可以讓我們執行自定義操作,比如對搜尋結果運作腳本和執行程式。

而 xargs 可以從标準輸入中擷取輸入,甚至可以将另一個指令的輸出視為輸入,并将其用作指令。

我們先來看一下 find -exec 指令。使用該指令删除空檔案,如下所示:

find /home/sagar/Files -type f -empty -print0 -exec rm -v "{}" \;           
在linux目錄行中找空目錄

删除空的目錄,可使用如下指令:

find /home/sagar/Files -type d -empty -print0 -exec rmdir -v "{}" \;           
在linux目錄行中找空目錄

使用 xargs 指令的方式,如下所示:

find /home/sagar/Files -type d -empty -print0 | xargs -0 -I {} /bin/rmdir "{}"           
在linux目錄行中找空目錄

然後,對上述指令做稍微的調整,可删除空白檔案:

find /home/sagar/Files -type f -empty -print0 | xargs -0 -I {} /bin/rm "{}"           
在linux目錄行中找空目錄

連結:https://mp.weixin.qq.com/s/dHXWjqxsYJg1s-8CjPdQog

繼續閱讀