※Libarchive/Rubyを使ってください!
http://tarruby.rubyforge.org/
TAR/Ruby 0.1.1をリリースしました。
What's this?
TAR/RubyはlibtarのRubyバインディングです。
libtarについてはできるだけパッチをあてましたが、きちんとメンテナンスされていないライブラリなので、バグがあれば報告していただけると助かります。
Example
reading tar archive
require 'tarruby' Tar.open('foo.tar', File::RDONLY, 0644, Tar::GNU) do |tar| while tar.read # or 'tar.each do ...' puts tar.pathname tar.print_long_ls if tar.reg? # regular file tar.extract_file('bar.txt') ##if extract buffer #puts tar.extract_buffer end end ##if extract all files #tar.extract_all end ##for gzip archive #Tar.gzopen('foo.tar.gz', ... ##for bzip2 archive #Tar.bzopen('foo.tar.bz2', ...
creating tar archive
require 'tarruby' Tar.open('bar.tar', File::CREAT | File::WRONLY, 0644, Tar::GNU) do |tar| Dir.glob('**/*.c').each do |filename| tar.append_file(filename) end ##if append directory #tar.append_tree('dirname') end ##for gzip archive #Tar.gzopen('foo.tar.gz', ... ##for bzip2 archive #Tar.bzopen('foo.tar.bz2', ...