Warum schlägt dieses find -L ... fgrep fehl?

Warum schlägt dieses find -L ... fgrep fehl?

Ich bin von Ubuntu zu Debian gewechselt und habe findjetzt ein Problem mit der Suche nach Tex-Dateien nach dem Wortmasi. Code und seine Ausgabe

masi@masi:~$ find -L "/home/masi/" -xtype f \
    -name "*.tex" -exec fgrep -l 'masi' {} + /dev/null

find: paths must precede expression: /dev/null
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
  • /dev/nullist im zweiten Befehlssatz notwendig, da wir verwenden find -L, da wir alle Symlinks einschließen und durchgehen und nichts bei der Suche ausschließen möchten. Thread, in dem die Motivation für die VerwendungHierumWie vermeidet man mit diesem Fund viele Ebenen von symbolischen Links?

Als Einzeiler

find -L "/home/masi/" -xtype f -name "*.tex" -exec fgrep -l 'masi' {} + /dev/null

Betriebssystem: Debian 8.5
Linux-Kernel: 4.6 oder Backports
Hardware: Asus Zenbook UX303UA
Verwandte Themen: findBefehl meines haetexSkripts im ThreadWie durchsucht man .tex-Dateien?
Suchen: find (GNU findutils) 4.4.2
Fgrep:grep (GNU grep) 2.20

Antwort1

Nur:

find -L /home/masi/ -xtype f -name "*.tex" -exec fgrep -l 'masi' {} +

nicht erforderlich /dev/null, da es sich {}um einen Platzhalter für die zu verarbeitende(n) Datei(en) handelt

Wenn Sie versuchen, die Fehlerausgabe zu verbergen, verwenden Sie sie folgendermaßen:

command 2>/dev/null

verwandte Informationen