可以find
根据目录的大小返回结果吗?
下面的命令按预期工作正常 -
find * -type f -size +10M -exec ls -hlSr {} \+
但将相同的内容应用于目录时,它不会返回任何结果
find * -type d -size +10M -exec ls -hlSr {} \+ //no output
所以想知道上面的一些变化是否可能。
我知道du
可以像这样使用 -->du -hs * | sort -h
来实现所需的输出,但我更感兴趣的是了解find
限制和使用场景。
答案1
这是预期的。
find -size
仅检查 inode 大小(请记住,目录也只是“文件”),而不检查目录内容。对于目录来说,永远不会超过 10M,因此结果find
只是空的。
索引节点大小与运行时获得的大小相同stat
:
$ du -s dir
61943836851 dir
$ stat -c %s dir
53248
所以单独使用是不可能的find
。
但您当然可以find . -type d -exec du -hs {} +
使用find
的过滤选项。
进一步阅读: