GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ubuntu grep, find etc:Permission denied und No such file or directory output

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

Linux
  1. Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0?

  2. Unterschied zwischen 2>&-, 2>/dev/null, |&, &>/dev/null und>/dev/null 2>&1?

  3. Was sind /dev/zero- und /dev/null-Dateien in Linux

  4. DD von /dev/zero nach /dev/null ... was eigentlich passiert

  5. /dev/sdb:Keine solche Datei oder Verzeichnis (aber /dev/sdb1 etc. existiert)

Was ist „/dev/null 2&1“ unter Linux

/dev/null unter Linux

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

Wie Linux /dev/tty und /dev/tty0 verwendet

echo oder print /dev/stdin /dev/stdout /dev/stderr