Пошук вихідних файлів у проекті
Використовуйте більш просту команду
Як правило, джерело для проекту, ймовірно, знаходиться в одному місці, можливо, в декількох підкаталогах, вкладених не більше двох-трьох глибоких, так що ви можете використовувати (можливо) більш швидку команду, наприклад
(cd /path/to/project; ls *.c */*.c */*/*.c)
Скористайтеся метаданими проекту
У проекті С ти зазвичай маєш Makefile. В інших проектах у вас може бути щось подібне. Це може бути швидким способом отримання списку файлів (та їх розташування), написання сценарію, який використовує цю інформацію для пошуку файлів. У мене є сценарій "джерела", щоб я міг писати такі команди, як grep variable $(sources programname)
.
Швидкість пошуку
Шукайте менше місць, а не find / …
використовуйте, find /path/to/project …
де можливо. По можливості спростіть критерії відбору. Використовуйте трубопроводи, щоб відкласти деякі критерії відбору, якщо це більш ефективно.
Також ви можете обмежити глибину пошуку. Для мене це значно покращує швидкість «пошуку». Ви можете використовувати -maxdepth перемикач. Наприклад, '-maxdepth 5'
Швидкість пошуку
Переконайтеся, що він індексує місця, які вас цікавлять. Прочитайте сторінку людини та скористайтеся всіма варіантами, які відповідають вашим завданням.
-U <dir>
Create slocate database starting at path <dir>.
-d <path>
--database=<path> Specifies the path of databases to search in.
-l <level>
Security level. 0 turns security checks off. This will make
searchs faster. 1 turns security checks on. This is the
default.
Видаліть необхідність пошуку
Можливо, ви шукаєте, бо ви забули, де щось є, або вам не сказали. У першому випадку пишіть замітки (документацію), в другому запитайте? Конвенції, стандарти та послідовність можуть багато допомогти.
locate
він повинен бути досить швидким, враховуючи, що він використовує попередньо вбудований індекс (основний застереження полягає в тому, що його потрібно постійно оновлювати), при цьомуfind
читати списки каталогів.