• ベストアンサー
  • 困ってます

シェルスクリプトで古いファイルの自動削除をするには?

  • 質問No.56928
  • 閲覧数9320
  • ありがとう数5
  • 回答数2

お礼率 92% (78/84)

UNIXで以下の仕様を持つシェルスクリプトを作成しようと
していますが、どうもうまくいきません。
どなたか、いい知恵を貸していただけないでしょうか?

目的:
特定のディレクトリ内にあるファイルについて、
システム日付より3日前のタイムスタンプを持つファイルを
削除する。

留意点:
・削除対象のファイルは複数存在する場合がある。
・ファイルサイズは1件あたり 0byte-数百Mbyte となる
 可能性がある。
・ファイル名は不定。
・スクリプトはBシェルまたはCシェルとする。

参考:
・現在使用しているOSについて
 ls -l でのタイムスタンプにおける出力形式は以下のとおり
 (デフォルト値?)
 ・ 9月 28日 2000年    または
  10月 24日 10時45分

知っている限りのコマンドを使っていろいろやってみたんですが、
結局ダメでした。
よろしくお願いします。

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

  • 回答No.2
  • ベストアンサー

ベストアンサー率 46% (22/47)

-type fも必要でした。

find somedir -type f -mtime +3 -exec rm {} \;

でいきましょう。
とりあえず、テストは

find somedir -type f -mtime +3 -print

でちゃんと該当するファイルが表示されるれば-exec rm {} \;にしても大丈夫。
日付まで確認したければ、

find mydir -type f -mtime +3 -exec ls -la {} \;

詳しくは、find(1)のmanをどうぞ。
お礼コメント
chaff

お礼率 92% (78/84)

ありがとうございます。
findで抽出可能とは知りませんでした。
なりほどぉ。-mtime ですか!!

ありがとうございました。大変助かりました。
投稿日時:2001/03/28 12:04

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 46% (22/47)

なんでスクリプトが必要かな。

find directory -mtime +3 -exec rm {} \;
お礼コメント
chaff

お礼率 92% (78/84)

>なんでスクリプトが必要かな。
その通りですね。find っていろいろできるんですねー
投稿日時:2001/03/28 12:07
関連するQ&A

ピックアップ

ページ先頭へ