電子書籍の厳選無料作品が豊富!

こんにちは。
LinuxのPCのsambaで共有したフォルダにTVチューナボードで録画したmpegファイルを保存しています。

録画しても結局見ない事もありまして、例えば録画して(mpegファイルが作成されて)から1週間経過したら拡張子.mpgのファイルを自動的に削除~

の様なことができると定期的にHDDの残り容量を調べてmpegファイルを手動削除、としなくてすむので便利だなと思うのですが、

・特定のフォルダの中の
・特定の種類の拡張子を(この場合はmpegファイル、.mpg)
・ファイルの作成日から一定期間経過したら(例えば1週間、720時間)
・自動的に削除(コマンドをcronに登録するような)

するような方法ご存じでしたらアドバイス頂けると助かります。

現在は rm -f /var/samba/*.mpg としてsambaフォルダの中の拡張子.mpgを全部削除、としてますが、これを例えば720時間(1週間)経過したもの、という条件をさらに追加するようなことは可能でしょうか?

A 回答 (3件)

find を使えばいいんじゃありませんか?


たとえば1週間以前の .mpg を消すなら
find -name '*.mpg' -mtime +7 -exec rm {} \;
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/09/30 02:27

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
    • good
    • 0

下記のような感じではどうでしょうか?



・特定のフォルダの中の
 → /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/man …

 xargs(1)コマンド
 http://www.linux.or.jp/JM/html/GNU_findutils/man …
 
 @IT:変更後一定期間が経過したファイルを探すには
 http://www.atmarkit.co.jp/flinux/rensai/linuxtip …
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/09/30 02:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!