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

Rem*_*i.b 10 bash performance ls find

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

ls -F | grep /

find . -type d -depth 1
Run Code Online (Sandbox Code Playgroud)

ls命令是准瞬时而find命令大约需要10秒.感觉find命令是通过每个子目录的内容,而命令似乎不需要它.

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

Eri*_*ouf 20

-depth不要停在单层,你想要-maxdepth的.相反,它告诉find在自身之前处理目录内容,即深度优先搜索.

试试吧

find . -maxdepth 1 -type d
Run Code Online (Sandbox Code Playgroud)

它会找到更多,ls -F | grep /因为它也会搜索"隐藏"文件,而对于我的例子来说,它的速度要快得多(0.091秒与0.1相比).