- ベストアンサー
古いファイルを削除したいのですが。。。
こんにちわ。 findコマンドを使って、あるディレクトリにどんどんできるファイルの古くなったものを削除したいのです。 例えば、7日以上更新がないものを削除したく、 # find /hoge/backup -mtime +7 -a -type f -exec rm -f {} \; というコマンドを実行してみましたが、結果は、削除されず残ったままで、しかも一部のファイルが元々古い日付だったものが、実行日時でタイムスタンプが書き変わってしまってます。 シェルはbashでもcshで試しても同じでした。 どうすればよいかご教示お願いできますでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>find /hoge/backup -mtime +7 -a -type f -exec rm -f \{\} \; ではないでしょうか?(「{}」もエスケープする。) ちなみにfindのバージョンによっては(FreeBSDのベースシステムのfindも入ります)、 >find /hoge/backup -mtime +7 -a -type f -delete とすることも出来ます。
補足
アドバイスありがとうございます。 両方試してみたのですが、やはり消えませんでした。 そのディレクトリは drwx------ 202 clamav clamav 3584 Mar 7 2006 . で、ファイルも全てowner:groupがclamavなのですが(clamAVによって退避させられてウィルスメール)、パーミッションが700なのが影響してるのでしょうか?? 例えば消えないファイルは drwx------ 2 clamav clamav 7680 Oct 5 2005 050801 drwx------ 2 clamav clamav 6144 Oct 5 2005 050802 drwx------ 2 clamav clamav 6656 Oct 5 2005 050803 drwx------ 2 clamav clamav 6144 Oct 5 2005 050804 drwx------ 2 clamav clamav 8192 Oct 5 2005 050805 drwx------ 2 clamav clamav 8704 Oct 5 2005 050806 などですが。。。 @@(汗 スイマセン。今気づきましたが、↑は、、、ファイルではなくディレクトリでした!!! # find /var/spool/quarantine/* -mtime +7 -a -type d -exec rm -rf {} \; で無事消去できました。 ありがとうございました。