古いファイルの削除

30分プログラム、その139。Loading...をマネしてみる。

削除はシェルでやればいいので、二週間前のファイルを出力することだけに注力している。

まあ、実際はzsh

rm **/*(m-14)

とやれば、2週間より前のファイルを削除できるわけですけどね。

使い方

$ ruby old_file.rb
3n1.pl
3n1.txt
abura.hs
abura.hs~
amb.rb
args.scm
....

$ ruby old_file.rb ~/tmp
build/tmp/plugins-1.xml
build/tmp/plugins-2.xml
elscreen-server-0.0.1
....

ソースコード

#! /opt/local/bin/ruby -w
# -*- mode:ruby; coding:utf-8 -*-
#
# old_file.rb -
#
# Copyright(C) 2007 by mzp
# Author: MIZUNO Hiroki <hiroki1124@gmail.com> 
# http://mzp.sakura.ne.jp/
#
# Timestamp: 2007/09/22 22:32:08
#
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Ruby itself.
#

Day = 24 * 60 * 60
Dir.chdir(ARGV.first) unless ARGV.empty?

point = Time.now - 14 * Day
Dir['**/*'].select{|file|
  File.mtime(file) < point
}.each(&method(:puts))