2016-04-18 4 views
0

Ich habe diese Codezeile ...Bash ‚find‘ Befehl gibt Fehler Zielort ist leer

find $ARCH2_DIR/mysql-bin.* +$BACKUP_PURGE_DAYS -exec rm {} \; 

Das Problem, das ich habe, ist es nach unten ein Fehler zurückgegeben ...

find: `/n01/mysqlarch2/mysql-bin.*': No such file or directory 

Gibt es eine Möglichkeit, diesen Fehler nicht zurückzugeben, wenn das Verzeichnis leer ist? Es ist möglich, dass das Verzeichnis, das ich suche, leer ist und ich möchte, dass das Skript weiterläuft.

Antwort

2

Ihnen fehlt ein Ort für die Suche.

Versuchen find "$ARCH2_DIR" -name "mysql-bin.*" +$BACKUP_PURGE_DAYS -exec rm {} \;

+0

Genau das, was ich außer sagen wollte, dass der Wert für '--name' Einzel zitiert sein muss. – derlarsschneider

+1

@derlarschneider Nein, das Argument zu '-name' kann hier doppelt so gut zitiert werden. Globs werden in keiner der beiden Arten von Zitaten erweitert. Das Verwenden von einfachen Anführungszeichen wäre "sicherer", da es * nichts * expandieren würde, wo dies versuchen würde, '$' zu erweitern, wenn es erscheinen würde. –