Ricerca di file sorgente in un progetto
Utilizzare un comando più semplice
Generalmente, è probabile che la fonte di un progetto si trovi in un posto, forse in alcune sottodirectory nidificate non più di due o tre di profondità, quindi puoi usare un comando (possibilmente) più veloce come
(cd /path/to/project; ls *.c */*.c */*/*.c)
Utilizzare i metadati del progetto
In un progetto C in genere avresti un Makefile. In altri progetti potresti avere qualcosa di simile. Questi possono essere un modo rapido per estrarre un elenco di file (e le loro posizioni) scrivere uno script che utilizza queste informazioni per individuare i file. Ho uno script "fonti" in modo da poter scrivere comandi come grep variable $(sources programname)
.
Accelerare la ricerca
Cerca meno posti, invece di find / …
usarli find /path/to/project …
dove possibile. Semplifica il più possibile i criteri di selezione. Utilizzare le pipeline per rinviare alcuni criteri di selezione se ciò è più efficiente.
Inoltre, puoi limitare la profondità della ricerca. Per me, questo migliora molto la velocità di "ricerca". È possibile utilizzare l'opzione -maxdepth. Ad esempio '-maxdepth 5'
Accelerare individuare
Assicurati che stia indicizzando le posizioni che ti interessano. Leggi la pagina man e fai uso di tutte le opzioni appropriate alla tua attività.
-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.
Rimuovi la necessità di cercare
Forse stai cercando perché hai dimenticato dove si trova o non è stato detto qualcosa. Nel primo caso, scrivere note (documentazione), nel secondo, chiedere? Convenzioni, standard e coerenza possono aiutare molto.
locate
dovrebbe già essere molto veloce, considerando che utilizza un indice predefinito (il principale avvertimento è che deve essere tenuto aggiornato), mentrefind
deve leggere gli elenchi delle directory.