Linux: Wie kann ich einen anderen Exit-Code vom Find-Befehl erhalten, wenn keine Dateien gefunden werden, die dem von mir verwendeten Muster entsprechen?

Linux: Wie kann ich einen anderen Exit-Code vom Find-Befehl erhalten, wenn keine Dateien gefunden werden, die dem von mir verwendeten Muster entsprechen?

Ich habe ein Skript, das den folgenden Befehl ausführt:

find /storage2/hpfiles_staging/ -name \*.gz -mmin +600

Und dann rsyncwerden die Dateien an einen Remote-Speicherort übertragen.

Manchmal gibt der findBefehl keine Ausgabe zurück (da an diesem Speicherort keine Dateien mit dem Namen *.gz vorhanden sind, die älter als 10 Minuten oder älter sind). Wenn dies geschieht, möchte ich eine Meldung in das Protokoll schreiben, dass dort keine Dateien vorhanden sind.

Aber wenn ich den Befehl ausführe find, ist der Exit-Code des findBefehls immer „0“, unabhängig davon, ob zu übertragende Dateien gefunden werden oder nicht (es sei denn natürlich, es liegt ein Syntaxfehler vor) und kann mir daher keinen Hinweis darauf geben, ob an diesem Speicherort Dateien gefunden wurden oder nicht.

Gibt es einen Schalter oder Trick, um einen anderen Exitcode als 0 zu erhalten, wenn durch den findBefehl keine Dateien gefunden wurden?

Dank im Voraus

Antwort1

Ich glaube nicht, dass Sie den Exit-Code von find beeinflussen können. Sie sollten vielleicht versuchen, die Ausgabe von find zu erfassen und diese zu verwenden, um festzustellen, ob Dateien gefunden wurden.

verwandte Informationen