Ich habe ein Skript, das den folgenden Befehl ausführt:
find /storage2/hpfiles_staging/ -name \*.gz -mmin +600
Und dann rsync
werden die Dateien an einen Remote-Speicherort übertragen.
Manchmal gibt der find
Befehl 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 find
Befehls 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 find
Befehl 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.