Linux
查找/刪除不包含任何文件的頂級文件夾
我想刪除不包含任何文件但可以包含其他空(再次意味著不包含文件)目錄的頂級目錄。例如:
$ ls -R .: foo/ ./foo/: bar bar1 ./foo/bar/: ./foo/bar1/:
在這裡,我想刪除目錄
foo/
(及其子目錄)。起初,我想使用類似find . -type d -empty
的搜尋,但由於 foo 包含目錄,它只找到較低級別的:$ find . -type d -empty ./foo/bar ./foo/bar1
我想我可以循環直到
find . -type d -empty
什麼也沒找到,但我最終可能會擁有一個非常大的目錄結構,其中包含很多空目錄,我擔心這樣做會影響性能……任何想法?
find . -depth -type d -empty
應該做的伎倆。-depth
將導致 find 在目錄本身之前處理目錄的內容。編輯:
大概你會
-delete
在這個發現的最後使用類似的東西,否則你會遇到你描述的同樣的問題。同樣值得注意的是,-delete
實際上意味著-depth
,所以真的,堅持find . -type d -empty -delete
會給你你正在尋找的東西;假設您也可以刪除遇到的任何其他較低級別的空目錄。