人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

unix のファイルに関する質問です。あるディレクトリ内にあるファイルをチェックして、1日前のものは消去するようにするのはどうすると簡単なのでしょうか? ややディレクトリが深い階層になっています。シェルのスクリプトできるならいいですし、シェルスクリプトを、ruby もしくは、php で作成するのもありです。サンプルのコード付きがありがたいです。

●質問者: kaiketsu
●カテゴリ:コンピュータ インターネット
✍キーワード:PHP Ruby UNIX コード シェル
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● pahoo
●30ポイント

こんな感じでどうでしょう。findコマンドを使っているだけです。

"hogehoge" は消去対象としたいディレクトリです。

ディレクトリの削除まではしていません。

find hogehoge -type f -mtime +0 -exec rm -f {} \;

2 ● dev_zer0
●50ポイント

findを使えば出来ます

http://www.linux.or.jp/JM/html/GNU_findutils/man1/find.1.html


なお、ファイル数が多い場合、findの-execオプションよりも

パイプで渡してxargsを使ったほうが速いですが、

ファイル名に空白が入っていたりするとマズイ状態になります


なぜマズイのかは以前の質問のコメント欄でBookmarkerさんが参考にされた記事

以前の質問:http://q.hatena.ne.jp/1190441422

参考記事:http://www.otsune.com/diary/2007/03/29/1.html

あたりを読むとわかります


結論として1日前の/tmp配下のファイルを消す方法としては

find /tmp -type f -mtime -1 -print0 | xargs -0 rm

というコマンドにすればよいということになります

◎質問者からの返答

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ