[英]Find Directories With No Files in Unix/Linux
我有一個目錄列表
/home
/dir1
/dir2
...
/dir100
其中一些沒有文件。 我如何使用Unix find
來做到這一點?
我試過了
find . -name "*" -type d -size 0
似乎沒有用。
你的發現是否有謂詞 - -empty
?
你應該可以使用find . -type d -empty
find . -type d -empty
如果您是zsh用戶,則可以隨時執行此操作。 如果你不是,也許這會說服你:
echo **/*(/^F)
**/*
將擴展到當前工作目錄的每個子節點,而()
是一個glob限定符。 /
將匹配限制為目錄, F
將匹配限制為非空的匹配。 用^
否定它會給我們所有空目錄。 有關更多詳細信息,請參見zshexpn手冊頁。
-empty
報告空葉dirs。 如果您想找到空樹,請查看: http : //code.google.com/p/fslint/source/browse/trunk/fslint/finded
請注意,如果沒有其他支持腳本,則無法使用腳本,但是您可能希望安裝fslint並直接使用它?
您還可以使用:
find . -type d -links 2
。 和..都算作鏈接,文件也是如此。
Pimin Konstantin Kefalou的答案只打印了2個鏈接和其他文件(d,f,...)的文件夾。
我找到的最簡單的方法是:
for directory in $(find . -type d); do
if [ -n "$(find $directory -maxdepth 1 -type f)" ]; then echo "$directory"
fi
done
如果您有空格的名稱,請在“$ directory”中使用引號。
你可以替換。 通過您的參考文件夾。
我用一條查找指令無法做到這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.