/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
如果您有名称用空格在“$目录”使用引号。
您可以更换。通过您的参考文件夹。
我一直无法用一条查找指令来做到这一点。