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

Why is `find -depth 1` so slow to list directories?

我正在列出当前目录中的目录。这是我比较的两个命令:

ls -F | grep /

find . -type d -depth 1

ls命令是准瞬时的,而find命令大约需要10秒。感觉find命令是遍历各个子目录的内容,而命令似乎不需要。

find . -type d -depth 1 怎么这么慢?

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

试试看

find . -maxdepth 1 -type d

它会找到比 ls -F | grep / 多的文件,因为它还会搜索 "hidden" 个文件,对于我的示例来说,它的速度要快得多(0.091 秒比 0.1 秒)。