
Ich habe ein Setup, bei dem ich „find“ verwenden muss, um 0 oder mehr Dateien in einem bestimmten Verzeichnis zu finden. Allerdings erzeugt „find“ immer einen Fehler, wenn es keine Dateien gibt, die einer bestimmten Prüfung entsprechen. Ist es möglich, „find“ auszuführen und dabei Fehler auszulassen, wenn keine Dateien dem Muster entsprechen?
Antwort1
Wie @grawity sagte, wird von find nicht erwartet, dass es diese Fehler meldet. Wenn Sie die Fehlerausgabe unterdrücken möchten, leiten Sie stderr trotzdem nach /dev/null um:
find . HERE_YOUR_FIND_PARAMS 2&> /dev/null
Ein typischer Fall, in dem „Find“ in die Standardfehlerdatei schreibt, tritt auf, wenn sich in Ihrem Find-Suchunterpfad ein Verzeichnis befindet, das nicht über die Berechtigung zum Öffnen verfügt.
Antwort2
Die einzige funktionierende Lösung, die ich bisher gefunden habe, war:
find something 2&> /dev/null || true
Dadurch wird sichergestellt, dass der endgültige Exit-Code Null ist, auch wenn keine Übereinstimmungen vorliegen, und außerdem werden die Standardausgabefehler ausgeblendet.
Antwort3
Können Sie die Fehler einfach ignorieren? Oder genauer gesagt, sie an weiterleiten /dev/null
?