Ich tat:grep -r -H -L txt ~
Undgrep -r -l -L txt ~
Werden alle Dateien aufgelistet? Ich erhalte nämlich eine sehr lange Ausgabe.
Antwort1
Ihre beiden Befehle sind genau gleich. Sie durchsuchen beide rekursiv Ihr Home-Verzeichnis und listen Dateien auf, die nicht das Muster „txt“ enthalten.
Um zu beweisen, dass sie die gleiche Leistung haben, können Sie
diff <(grep -r -H -L txt ~) <(grep -r -l -L txt ~)
Um es etwas genauer zu beschreiben …
grep -r -H -L
ist das gleiche wie
grep -r -L
-H
(Dateinamen drucken) ist bei jedem grep
Aufruf impliziert, der mehr als eine Datei betrifft. Das ist der -L
Fall, da alle Dateien aufgelistet werden, die nicht dem angegebenen Muster entsprechen.
Nächste...
grep -r -l -L
ist das gleiche wie
grep -r -L
Dies liegt einfach daran, dass -l
und -L
widersprüchliche Optionen sind und in solchen Fällen die zuletzt angezeigte Flagge alle vorherigen widersprüchlichen Flaggen überschreibt. (Dank an@don_crisstifür den Hinweis.)
Sie haben also tatsächlich grep -r -L
und grep -r -L
.