2017-11-01 16 views
0

Ich habe versucht, etwas Text zu finden.Über Grep Option zwischen zwei Fällen

Was unterscheidet die beiden unten?

grep -r "text" ./* 
grep -r "text" . 
+0

. bedeutet aktuelles Verzeichnis ./* bedeutet alle Elemente unter dem aktuellen Verzeichnis das Verhalten für ls zum Beispiel wird in den 2 Situationen ganz anders sein, für Grep wird es das gleiche sein, da Sie den rekursiven Modus verwenden, wenn Sie möchten Stellen Sie sicher, dass Sie das Ergebnis beider Befehle in zwei verschiedenen Ausgabedateien ausgeben können, und machen Sie dann einen Unterschied zwischen diesen! – Allan

+0

versuchen Sie 'strace' Befehl, wenn Sie können. –

+0

@Karthikeyan Warum empfehlen Sie die Verwendung von strace? Strace Dumps alle Low-Level-Systeme fordert einen Prozess. Ich habe nach dem Anwendungsfall von strace mit grep gesucht ... und grep ist sicherlich nützlich, um das (oft massive) Volumen von strace zu begrenzen. Oder stellen Sie sich einen anderen Anwendungsfall vor? –

Antwort

1

Beide Befehle erhalten Dateien aus dem current directory und Dateien aus Unterverzeichnissen ... aber ./* wird jede hidden files and directories ausschließen, die einen Namen mit . wie ~/.bashrc beginnen haben.

grep -r "text" ./* 
grep -r "text" . 

Die -r Flag bedeuten eine rekursive Suche zu tun und die . bedeutet das aktuelle Verzeichnis zu verwenden und die * bedeutet, dass alle nicht-versteckte Dateien im angegebenen Verzeichnis zu verwenden. Eine rekursive Suche bedeutet, dass jede Datei in diesem Verzeichnis und alle Dateien in allen Unterverzeichnissen behandelt werden.

Aber die scheinbar mehr inklusive ./* vermisst paradoxerweise einige Dateien. Eine Schlüsselkategorie von verpassten Dateien sind viele der rc files wie ~/.bashrc, wenn Sie zufällig von einem UNIX-ähnlichen Betriebssystem aus der obersten Ebene Ihres Benutzerkontos gesucht haben.

+1

'./*' oder '*' passt nicht zu versteckten Dateien, '.' passt zu ihnen. – thanasisp

+0

Danke @thanasisp für meinen Fehler zu fangen. Ihre Korrektur wurde in meine Antwort integriert. –

Verwandte Themen