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

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

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

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

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

A 回答 (2件)

-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をどうぞ。
    • good
    • 0
この回答へのお礼

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

ありがとうございました。大変助かりました。

お礼日時:2001/03/28 12:04

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



find directory -mtime +3 -exec rm {} \;
    • good
    • 0
この回答へのお礼

>なんでスクリプトが必要かな。
その通りですね。find っていろいろできるんですねー

お礼日時:2001/03/28 12:07

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


人気Q&Aランキング

おすすめ情報