Suchen nach Quelldateien in einem Projekt
Verwenden Sie einen einfacheren Befehl
Im Allgemeinen befindet sich die Quelle für ein Projekt wahrscheinlich an einem Ort, möglicherweise in einigen wenigen Unterverzeichnissen, die nicht mehr als zwei oder drei Zeilen tief verschachtelt sind, sodass Sie einen (möglicherweise) schnelleren Befehl wie z
(cd /path/to/project; ls *.c */*.c */*/*.c)
Nutzen Sie Projekt-Metadaten
In einem C-Projekt haben Sie normalerweise ein Makefile. In anderen Projekten haben Sie möglicherweise etwas Ähnliches. Dies kann ein schneller Weg sein, um eine Liste von Dateien (und ihren Speicherorten) zu extrahieren. Schreiben Sie ein Skript, das diese Informationen verwendet, um Dateien zu lokalisieren. Ich habe ein "Quellen" -Skript, damit ich Befehle wie schreiben kann grep variable $(sources programname)
.
Schneller finden
Suchen Sie nach weniger Orten, anstatt sie zu find / …
verwenden, find /path/to/project …
wo dies möglich ist. Vereinfachen Sie die Auswahlkriterien so weit wie möglich. Verwenden Sie Pipelines, um einige Auswahlkriterien zu verschieben, wenn dies effizienter ist.
Sie können auch die Suchtiefe begrenzen. Für mich bedeutet dies eine erhebliche Verbesserung der Suchgeschwindigkeit. Sie können den Schalter -maxdepth verwenden. Zum Beispiel '-maxtiefe 5'
Schnellere Lokalisierung
Stellen Sie sicher, dass die Standorte indiziert werden, an denen Sie interessiert sind. Lesen Sie die Manpage und nutzen Sie die für Ihre Aufgabe geeigneten Optionen.
-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.
Beseitigen Sie die Notwendigkeit der Suche
Vielleicht suchen Sie, weil Sie vergessen haben, wo etwas steht oder was nicht gesagt wurde. Im ersteren Fall schreiben Sie Notizen (Dokumentation), im letzteren fragen Sie? Konventionen, Standards und Konsistenz können sehr hilfreich sein.
locate
sollte schon schnell genug sein, wenn man bedenkt, dass es einen vorgefertigten Index verwendet (der wichtigste Vorbehalt ist, dass es auf dem neuesten Stand gehalten werden muss), währendfind
die Verzeichnislisten gelesen werden müssen.