現在、プロジェクトを tarball にバックアップしています。最新の 5 つのバックアップのみを保持したいと考えています。現在、スクリプトは次のようになっています。
tar -cjf $HOME/projects/foo.$(date +%Y%m%d%H%M%S).tar.bz2 $HOME/projects/foo > /dev/null 2>&1
find $HOME/projects -maxdepth 1 -name "foo*.tar.bz2" | ghead -n -5 | xargs rm > /dev/null 2>&1
# CR and blank line
tarball は作成されますが、古いものは削除されません。奇妙なことに、2 行目をコピーしてシェルに貼り付けると、ファイルが期待どおりに削除されます。コマンドラインから手動で呼び出すと、スクリプトは期待どおりに機能します。スクリプトが 2 行目に達していませんか、それとも、コマンドの実行に関するルールがいくつかcron
ありますか?
gnu-coreutils を使用した Mac OS X 10.8。cron
起動サービスの下で使用しようとしましたが、同じ結果が得られました。