ex1-lab

Linux, CentOS, Mac OS X, Windows, 仮想化, Apache等のLinux中心に気になることをメモがわりに・・・

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

      2017/01/31 この記事は約2分で読むことができます。

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 [コマンド]



 - Linux ,