Verschieben Sie einfach die Umleitung auf den ersten Befehl, also
find ... 2>/dev/null | xargs ...
Oder Sie können alles in Klammern setzen:
(find ... | xargs ...) 2>/dev/null
Um stderr nach /dev/null umzuleiten, verwenden Sie:
some_cmd 2>/dev/null
Sie brauchen xargs
nicht hier. (Und Sie wollen es nicht!, da es eine Wortaufspaltung durchführt)
Verwenden Sie die exec-Option von find:
find . -type f -name "*.txt" -exec grep -li needle {} +
Um die Fehlermeldungen zu unterdrücken, verwenden Sie den -s
Option von grep
:
Ab man grep
:
-s, --no-messagesUnterdrückt Fehlermeldungen über nicht vorhandene oder nicht lesbare Dateien.
das gibt Ihnen:
find . -type f -name "*.txt" -exec grep -lis needle {} +