Mit grep können Sie das Flag -s angeben, das ziemlich genau das tut, was @ortang gesagt hat
-s, --no-messages Fehlermeldungen über nicht vorhandene oder nicht lesbare Dateien unterdrücken. Hinweis zur Portierbarkeit:Im Gegensatz zu GNU grep war die 7. Ausgabe von Unix grep nicht POSIX-konform, da ihm -q fehlte und seine Option -s sich wie die Option -q von GNU grep verhielt. Grep im USG-Stil fehlte auch -q, aber seine Option -s verhielt sich wie GNU grep. Portable Shellscripts sollten sowohl -q als auch -s vermeiden und stattdessen die Standard- und Fehlerausgabe nach /dev/null umleiten.
mit find ist soweit ich weiß @ortangs antwort die beste.sowas wie
find / -name "myfile" -type f -print 2>/dev/null
Versuchen Sie, stderr
umzuleiten bis /dev/null
.
[email protected]:/$ grep -rnP 'YII_CORE_PATH' ./ 2> /dev/null | grep -v .svn
Umleitung der strerr
bis /dev/null
(alias black hole
) ist eine gute Möglichkeit, Fehler mit verweigerten Berechtigungen zu unterdrücken.
Beachten Sie jedoch, dass diese Wunde nicht nur permission denied
unterdrückt Nachrichten, aber ALLE Fehlermeldungen.
Wenn Sie andere Fehlermeldungen als permission denied
beibehalten möchten dann können Sie so etwas tun -
grep -rnP 'YII_CORE_PATH' ./ 2>&1 | grep -v 'permission denied' > error.log
Wenn Sie diese nicht behalten möchten, wäre Folgendes in Ordnung -
grep -rnP 'YII_CORE_PATH' ./ 2> /dev/null | grep -v .svn