-PR-
解決済み

シェルにてファイルの自動削除をするには?

  • すぐに回答を!
  • 質問No.29184
  • 閲覧数492
  • ありがとう数2
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 47% (8/17)

シェルにて「abc.0101171109(.以降は年月日時分)」
というようなログファイルを一日3回、作成しています。
これを一週間、または一ヶ月たったら
自動的に削除するにはどうすればよいでしょうか。

OSはSolaris2.6で、
シェルはBでもCでも何でもかまいませんのでよろしくお願い致します。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.4
レベル10

ベストアンサー率 66% (103/155)

findで条件を並べて書けばANDになるので-nameでファイルを制限すれば良いのではないでしょうか?

paz777さんの例に追加してます。
find {directory} -name abc.\[0-9\]\* -mtime +7 -exec rm -r {} \;

もちろん-nameあとの部分は希望のファイル名に合わせてください。

FreeBSD 4.2-RELEASEとUnixware7で動作確認してます。
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル11

ベストアンサー率 40% (104/257)

GNU Shell utilities のなかにあるdateコマンドをインストールして

find . -not -newer `date '1 month ago' '+abc.%y%m%d0000'` -exec rm {} \; -print

とかではどうでしょうか?

あとは、atかcronでこれを定期的に実行する。

# サブディレクトリがない&同じディレクトリにはログファイル以外のファイルがないというのが前提です。
補足コメント
torigomoku

お礼率 47% (8/17)

すばやい回答ありがとうございます。
せっかくのご回答ですが、
インストールは行うことができないので、
できればインストールを行わずに、
シェルだけで何とかできないでしょうか?
投稿日時 - 2001-01-17 12:55:43


  • 回答No.2
レベル10

ベストアンサー率 47% (77/163)

こんにちは。
UNIXコマンドのfindで対応できないでしょうか?

find {directory} -mtime +7 -exec rm -r {} \;
こんな形です。(最後の[;]も必要です)
{directory}には、対象ディレクトリを指定して下さい。
[+7]が更新日になります。
1週間であれば[+7]、1ヶ月であれば[+30]ってな感じ
です。

ではでは・・・
  • 回答No.3
レベル10

ベストアンサー率 47% (77/163)

すいません。再登場です。
h_hikitaさんの回答を見て、自分の回答が
「やばい」ことに気付きました。
σ(^^)の回答をそのまま実行すると、対象とならない
別のファイルまで削除してしまいます。

一応、ディレクトリ内には対象のログファイルしか
ない場合が前提になります。(^^;

すいませんでした。
「自信なし」に変更!!!
このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ