2016-07-26 4 views
3

Я перечисляю каталоги в текущем каталоге. Вот эти две команды я сравниваю:Почему `find -depth 1` так медленно записывать каталоги?

ls -F | grep/

find . -type d -depth 1 

ls Команда квази мгновенная в то время как команда find занимает около 10 секунд. Похоже, команда find проходит содержимое каждого подкаталога, пока команда не требуется.

Что такое find . -type d -depth 1 делать так медленно?

ответ

10

-depth не останавливается на одном уровне, вы хотите -maxdepth для этого. Вместо этого он сообщает find для обработки содержимого каталогов перед собой, то есть первого поиска глубины.

Попробуйте вместо

find . -maxdepth 1 -type d 

будет найти более ls -F | grep /, потому что он также будет искать «скрытые» файлы, и для моего примера был чуть-чуть быстрее (0.091 секунд по сравнению с 0,1).