def contents
      @contents ||= begin
        data = manifest.split("\n").reject {|line| line =~ /\/$/ }
        data.map! {|line| line.split(' ') }
        if gnu_tar?
          Hash[data.map {|fields| [fields[5], fields[2].to_i] }]
        else
          Hash[data.map {|fields| [fields[8], fields[4].to_i] }]
        end
      end
    end
def contents
      @contents ||= begin
        data = manifest.split("\n").reject {|line| line =~ /\/$/ }
        data.map! {|line| line.split(' ') }
        if gnu_tar?
          Hash[data.map {|fields| [fields[5], fields[2].to_i] }]
        else
          Hash[data.map {|fields| [fields[8], fields[4].to_i] }]
        end
      end
    end
GNU/BSD have different formats for `tar -tvf`.

 Returns a Hash of { 'path' => size } for only the files in the manifest.