- ベストアンサー
リダイレクトで空ファイルを生成しない方法
以下のようにcronの実行結果にgrepをかけて、出力をファイルに書き出しているのですが、grepの結果出力がないときにサイズ0のファイルが生成されます。 cron.php | grep -v '\[ OK \]\|#!/usr/bin/php' > log/`date +%Y%m%d`cron.log 出力があるとき以外ファイルを生成させない方法はありますか? 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
無いですね。リダイレクトの出力ファイルの作成は、コマンド実行前にされます。 普通にファイルを作って、大きさゼロなら削除するしかない。 今回は、grep なのでgrepが失敗すれば(マッチがゼロ件なら)削除。 cron.php | grep -v '\[ OK \]\|#!/usr/bin/php' > log/`date +%Y%m%d`cron.log || rm log/`date +%Y%m%d`cron.log 一般の場合だと、ファイルサイズを調べて コマンド > log ; test -s log || rm log
お礼
すみません、遅くなりました。 やはりご教示の方法しかないんですね。 ありがとうございました。