为什么`find -depth 1`列出目录这么慢?

时间:2016-07-26 21:53:59

标签: bash performance find ls

我列出了当前目录中的目录。以下是我要比较的两个命令:

ls -F | grep /

find . -type d -depth 1

ls命令是准瞬时的,而find命令大约需要10秒。感觉就像find命令正在浏览每个子目录的内容,而命令似乎并不需要它。

find . -type d -depth 1做什么这么慢?

1 个答案:

答案 0 :(得分:19)

-depth不会停留在单个图层,您需要-maxdepth。相反,它告诉find在自身之前处理目录内容,即深度优先搜索。

尝试改为

find . -maxdepth 1 -type d

它会找到超过ls -F | grep /的内容,因为它还会搜索“隐藏”文件,而对于我的示例,它的速度要快一些(0.091秒与0.1相比)。