/home
/dir1
/dir2
...
/dir100
他們有的在它沒有文件的列表。我如何使用Unix find
來做到這一點?
我試圖
find . -name "*" -type d -size 0
似乎不工作。
/home
/dir1
/dir2
...
/dir100
他們有的在它沒有文件的列表。我如何使用Unix find
來做到這一點?
我試圖
find . -name "*" -type d -size 0
似乎不工作。
您會發現該詞條有定義-empty
?
您應該能夠使用find . -type d -empty
如果你是一個zsh的用戶,你總是可以做到這一點。如果你沒有,也許這將說服你:
echo **/*(/^F)
**/*
將擴大到當前的工作目錄的每個子節點和()
是水珠預選賽。 /
限制與目錄匹配,並且F
將匹配限制爲非空目標。用^
否定它給我們所有的空目錄。有關更多詳細信息,請參見zshexpn手冊頁。
-empty
報告空葉子。 如果你想找到空的樹,然後看看: 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
如果您有名稱用空格在「$目錄」使用引號。
您可以更換。通過您的參考文件夾。
我一直無法用一條查找指令來做到這一點。