※Libarchive/Rubyを使ってください!
http://tarruby.rubyforge.org/
http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/tarruby/?root=svn
とりあえずできた。近々RubyForgeに登録予定。
圧縮
require 'tarruby' Tar.gzopen('foo.tar.gz', File::CREAT | File::WRONLY) do |tar| tar.append_file('bar.c') tar.append_tree('zoo/') end
解凍
require 'tarruby' Tar.gzopen('foo.tar.gz', File::RDONLY) do |tar| while tar.read puts tar.pathname tar.extract_file('xxx/yyy.txt') end # or tar.extract_all end