Mac OS X 10.5 (Leopard) に Tiger(10.4) からアップグレードした場合、Tiger の man ページが /usr/share/man に残ってしまいます。これではシステムにインストールされているUNIX コマンドの man ページの閲覧に支障を来しますので、古い Tiger の man ページを ruby スクリプトで消します。

require 'find' 

pages = Hash.new { |h, k| h[k] = [] } 

Find.find('/usr/share/man') do |path| 
stat = File.lstat(path) 
next unless stat.file? 

base = File.basename(path) 
base.sub!(/\.gz$/,'') 
base.sub!(/(\.\d)[^\.]*$/, '\1') 

pages[base] << { :path => path, :mtime => stat.mtime } 
end 

pages.each do |base, files| 
next if files.size == 1 

ordered = files.sort_by { |f| f[:mtime] } 
ordered.pop 
ordered.each { |f| File.unlink(f[:path]) } 
end

上記のスクリプトを manpages.rb という名前で保存して sudo で実行すると古い man ページが削除されます。

/!\ 実行する前に /usr/share/man のバックアップを推奨します。

sudo ruby ./manpages.rb

Leopard の man ページはすべて gzip されたファイルなので、.gz 以外 のファイルを削除します。

rubyスクリプトのダウンロード

manpages.rb

参考ページ

Leopard and X11 http://forums.macosxhints.com/showthread.php?t=80171&page=3

最終更新日 2009-05-03 15:38:57