2

Команда find занимает слишком много времени на моей машине для выполнения. Когда я использую команду time , я нахожу, что системное время и пользовательское время слишком малы по сравнению с реальным временем. Мой процесс поиска не запланирован должным образом?

Я прервал бесконечную команду поиска и получил следующую статистику:

Real time : 5min
Sys time : 1.1 sec
User time : 3 sec

я бегал

find / -name ls 2>/dev/null

2 ответа2

7

для команды find дисковый ввод-вывод, вероятно, будет гораздо более узким местом, чем время процессора.

сравните свой

find / -name ls 2>/dev/null   

с эквивалентным

locate ls | grep "/ls$"

или же

locate -r "/ls$"

или (самый быстрый для поиска местоположения команд на вашем пути)

which ls
2

Хотел добавить свои два цента ... Возможно, вы захотите взглянуть на использование mlocate. Он будет кэшировать файлы в вашей системе и позволит вам использовать команду «найти», чтобы быстро найти то, что вы ищете. И вы можете обновить кэш с помощью команды «updatedb». Единственный недостаток заключается в том, что он не так прост в использовании в скриптах, как find, потому что для его использования по умолчанию требуются права доступа root.

Find ничего не кеширует, просто будет каждый раз пересматривать. Как и сказал RedGrittyBrick, ваш диск станет узким местом в вашей системе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .