Ich suche in einem Git-Repository und möchte den .git
Ordner einschließen .
grep
enthält diesen Ordner nicht, wenn ich laufe
grep -r search *
Was wäre ein grep-Befehl, um diesen Ordner einzuschließen?
quelle
Ich suche in einem Git-Repository und möchte den .git
Ordner einschließen .
grep
enthält diesen Ordner nicht, wenn ich laufe
grep -r search *
Was wäre ein grep-Befehl, um diesen Ordner einzuschließen?
Bitte beziehen Sie sich auf die Lösung am Ende dieses Beitrags als bessere Alternative zu dem, was Sie tun.
Sie können versteckte Dateien explizit einschließen (ein Verzeichnis ist auch eine Datei).
grep -r search * .*
Das *
passt zu allen Dateien außer den versteckten und .*
nur zu den versteckten Dateien. Dies schlägt jedoch fehl, wenn sich entweder keine nicht versteckten Dateien oder keine versteckten Dateien in einem bestimmten Verzeichnis befinden. Sie können natürlich explizit .git
anstelle von hinzufügen .*
.
Wenn Sie jedoch einfach in einem bestimmten Verzeichnis suchen möchten, gehen Sie folgendermaßen vor:
grep -r search .
Das entspricht .
dem aktuellen Pfad, der sowohl nicht versteckte als auch versteckte Dateien enthält.
.*
wird das übergeordnete Verzeichnis enthalten (weil..
Übereinstimmungen)Ich bin gerade auf dieses Problem gestoßen. Basierend auf der Antwort von @ bitmask ist hier meine einfache Änderung, um das von @sehe aufgezeigte Problem zu vermeiden:
quelle
sudo grep -r ANDROID_HOME * .[^.]*
Was mache ich hier falsch?Vielleicht bevorzugen Sie es, "grep" mit dem Befehl "find" zu kombinieren, um eine vollständige Lösung wie:
Dieser Befehl durchsucht versteckte Dateien oder Verzeichnisse nach der Zeichenfolge "Suche" und listet alle Dateien auf, die mit diesem Ausgabeformat übereinstimmen:
Dateipfad: Zeilennummer: Zeile mit Zufall
quelle
Möglicherweise möchten Sie diesen Ansatz verwenden, vorausgesetzt, Sie durchsuchen das aktuelle Verzeichnis (andernfalls ersetzen Sie es durch das gewünschte Verzeichnis):
oder wenn Sie nur auf der obersten Ebene suchen möchten (was schneller zu testen ist, wenn Sie diese ausprobieren):
UPDATE: Ich habe die Beispiele als Reaktion auf Scotts Kommentare geändert. Ich habe auch "-type f" hinzugefügt.
quelle
~
ist das Home-Verzeichnis des Benutzers. Die Frage bezog sich nicht auf das Home-Verzeichnis des Benutzers, daher sollte die Antwort nicht erwähnt werden~
. (2) In einemfind
Befehl-name '*'
ist ein No-Op (dh es hat keinen Zweck).So suchen Sie NUR alle versteckten Dateien und Verzeichnisse von Ihrem aktuellen Standort aus:
NUR alle versteckten Dateien:
NUR alle versteckten Verzeichnisse:
quelle
Alle anderen Antworten sind besser. Dieser könnte leicht zu merken sein:
Es werden nur Dateien (einschließlich versteckter) gefunden und jede Datei erfasst.
quelle
So finden Sie nur in einem bestimmten Ordner:
Es ist ein sehr einfacher Befehl zum Auflisten und Weiterleiten an grep.
quelle
Zusätzlich zu Tylers Vorschlag ist hier der Befehl, alle Dateien und Ordner einschließlich versteckter Dateien rekursiv zu erfassen
quelle
Um zu verhindern , Matching
.
und..
die Dateien nicht ausgeblendet sind, können Siegrep
mit ,ls -A
wie in diesem Beispiel:^\.
gibt an, dass das erste Zeichen sein muss.
Die
-A
oder--almost-all
Option schließt die Ergebnisse.
und..
damit nur versteckte Dateien und Verzeichnisse abgestimmt sind.quelle
Sie können auch nach bestimmten Arten von versteckten Dateien suchen, z. B. nach versteckten Verzeichnisdateien:
Dies funktioniert möglicherweise besser als einige der anderen Optionen. Die anderen Optionen, die funktionierten, können zu langsam sein.
quelle