• ベストアンサー

作成してから一定期間経過したファイルを自動的に削除するコマンド

こんにちは。 LinuxのPCのsambaで共有したフォルダにTVチューナボードで録画したmpegファイルを保存しています。 録画しても結局見ない事もありまして、例えば録画して(mpegファイルが作成されて)から1週間経過したら拡張子.mpgのファイルを自動的に削除~ の様なことができると定期的にHDDの残り容量を調べてmpegファイルを手動削除、としなくてすむので便利だなと思うのですが、 ・特定のフォルダの中の ・特定の種類の拡張子を(この場合はmpegファイル、.mpg) ・ファイルの作成日から一定期間経過したら(例えば1週間、720時間) ・自動的に削除(コマンドをcronに登録するような) するような方法ご存じでしたらアドバイス頂けると助かります。 現在は rm -f /var/samba/*.mpg としてsambaフォルダの中の拡張子.mpgを全部削除、としてますが、これを例えば720時間(1週間)経過したもの、という条件をさらに追加するようなことは可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • moritan2
  • ベストアンサー率25% (168/670)
回答No.1

find を使えばいいんじゃありませんか? たとえば1週間以前の .mpg を消すなら find -name '*.mpg' -mtime +7 -exec rm {} \;

hayase
質問者

お礼

ずばりの回答ありがとうございます!

その他の回答 (2)

  • Lean
  • ベストアンサー率72% (435/603)
回答No.3

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)
回答No.2

下記のような感じではどうでしょうか? ・特定のフォルダの中の  → /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

hayase
質問者

お礼

詳しいアドバイスありがとうございます。 参考ページまで教えて頂いて大変為になります。

関連するQ&A