Поиск исходных файлов в проекте
Используйте более простую команду
Как правило, исходный код проекта, вероятно, находится в одном месте, возможно, в нескольких подкаталогах, вложенных не более чем в две или три глубины, поэтому вы можете использовать (возможно) более быструю команду, такую как
(cd /path/to/project; ls *.c */*.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
должен читать списки каталогов.