- ベストアンサー
作成してから一定期間経過したファイルを自動的に削除するコマンド
こんにちは。 LinuxのPCのsambaで共有したフォルダにTVチューナボードで録画したmpegファイルを保存しています。 録画しても結局見ない事もありまして、例えば録画して(mpegファイルが作成されて)から1週間経過したら拡張子.mpgのファイルを自動的に削除~ の様なことができると定期的にHDDの残り容量を調べてmpegファイルを手動削除、としなくてすむので便利だなと思うのですが、 ・特定のフォルダの中の ・特定の種類の拡張子を(この場合はmpegファイル、.mpg) ・ファイルの作成日から一定期間経過したら(例えば1週間、720時間) ・自動的に削除(コマンドをcronに登録するような) するような方法ご存じでしたらアドバイス頂けると助かります。 現在は rm -f /var/samba/*.mpg としてsambaフォルダの中の拡張子.mpgを全部削除、としてますが、これを例えば720時間(1週間)経過したもの、という条件をさらに追加するようなことは可能でしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
find を使えばいいんじゃありませんか? たとえば1週間以前の .mpg を消すなら find -name '*.mpg' -mtime +7 -exec rm {} \;
その他の回答 (2)
- Lean
- ベストアンサー率72% (435/603)
No.2です。 訂正です。 >find /var/samba -name "*.mpg" -ctime +7 -exec rm -f {} \; 1>/dev/null 2>&1 ↓ find /var/samba -name '*.mpg' -ctime +7 -exec rm -f {} \; 1>/dev/null 2>&1 >find /var/samba -name "*.mpg" -ctime +7 -print0 | xargs -0 -i rm -f {} 1>/dev/null 2>&1 ↓ find /var/samba -name '*.mpg' -ctime +7 -print0 | xargs -0 -i rm -f {} 1>/dev/null 2>&1
- Lean
- ベストアンサー率72% (435/603)
下記のような感じではどうでしょうか? ・特定のフォルダの中の → /var/samba ・特定の種類の拡張子を(この場合はmpegファイル、.mpg) → -name "*.mpg" ・ファイルの作成日から一定期間経過したら(例えば1週間、720時間) → -ctime +7 ・自動的に削除(コマンドをcronに登録するような) ↓をcrontabに登録 find /var/samba -name "*.mpg" -ctime +7 -exec rm -f {} \; 1>/dev/null 2>&1 or find /var/samba -name "*.mpg" -ctime +7 -print0 | xargs -0 -i rm -f {} 1>/dev/null 2>&1 ※参考 find(1)コマンド http://www.linux.or.jp/JM/html/GNU_findutils/man1/find.1.html xargs(1)コマンド http://www.linux.or.jp/JM/html/GNU_findutils/man1/xargs.1.html @IT:変更後一定期間が経過したファイルを探すには http://www.atmarkit.co.jp/flinux/rensai/linuxtips/395findoldfile.html
お礼
詳しいアドバイスありがとうございます。 参考ページまで教えて頂いて大変為になります。
お礼
ずばりの回答ありがとうございます!