Wenn ich grep
oder benutze find
, ärgere ich mich immer über die Hinweise "Erlaubnis verweigert" und "Keine solche Datei oder kein solches Verzeichnis".
johndoe@johndoe-desktop:/$ grep -rnP 'YII_CORE_PATH' ./ | grep -v .svn
grep: ./lib/ufw/user6.rules: Permission denied
grep: ./lib/ufw/user.rules: Permission denied
grep: ./lib/init/rw/udev/watch/27: No such file or directory
grep: ./lib/init/rw/udev/watch/26: No such file or directory
grep: ./lib/init/rw/udev/watch/25: No such file or directory
Wie kann ich sie umgehen und es so gestalten, dass nur relevante Daten angezeigt werden, nach denen ich wirklich suche?
Antworten:
mit grep könnte man das -s flag angeben, das ziemlich genau das macht, was @ortang gesagt hat
mit find soweit ich weiß @ortangs antwort ist das beste. etwas wie
find / -name "myfile" -type f -print 2>/dev/null
quelle
Versuchen Sie Umleitung
stderr
zu/dev/null
.quelle
Das Umleiten von
strerr
to/dev/null
(akablack hole
) ist eine gute Möglichkeit, Fehler zu unterdrücken, denen die Berechtigung verweigert wurde.Beachten Sie jedoch, dass diese Wunde nicht nur
permission denied
Meldungen, sondern ALLE Fehlermeldungen unterdrückt .Wenn Sie andere Fehlermeldungen beibehalten möchten,
permission denied
können Sie Folgendes tun:Wenn Sie diese nicht behalten möchten, ist Folgendes in Ordnung -
quelle
2>&1
statt2> /dev/null
für den ersten Vorschlag.stderr
zustout
ersten.Verwenden Sie den
sudo
Befehl, um den Befehl zu erweitern und Administratorrechte zu erhalten.quelle
Verwenden Sie "| &", bevor das grep -v sich darum kümmert, z
quelle