find の結果が空の場合、xargs は何も実行しない

2017-01-31

findの結果をxargsに送って、ファイルを削除したりする場合てLinuxサーバーを運用しているとありますよね。
その場合、下記のコマンドを実行した場合

※ 上記コマンドは、/home/hoge/xxx/log/のディレクトリ内で、ファイルが最後に修正されたのが90日以上でファイル名が「*.log」のファイルを削除するコマンドです

findの結果が空だと以下のメッセージが表示されます

このメッセージを表示されないfindのオプションは「–no-run-if-empty, -r」になります
manからの抜粋だと、説明は以下となります

【manからの抜粋】
–no-run-if-empty or -r
標準入力に空白しか含まれていない場合は、指定したコマンドを実行しない。 通常では、入力が全くない場合でも、コマンドが一回は実行されるのだ。 このオプションは GNU の拡張である。

–no-run-if-empty or -r」のオプションをつけて実行します

【書式】
find [検索対象ディレクトリ] [検索条件] [コマンド] | xargs –no-run-if-empty [コマンド]
find [検索対象ディレクトリ] [検索条件] [コマンド] | xargs -r [コマンド]