GNU find: Deaktivieren Sie den Fehler, wenn „find“ keine Übereinstimmungen findet

GNU find: Deaktivieren Sie den Fehler, wenn „find“ keine Übereinstimmungen findet

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?

verwandte Informationen