def compress(aSourceFiles,aDestFile,aParentDir=nil)
			logger.info "Collecting files ..."
			#logger.info aSourceFiles.join("\n")
      #filelist = filemap = nil
      #if aSourceFiles.is_a?(Hash)
      #  filelist = aSourceFiles.keys
      #  filemap = aSourceFiles
      #else  # assume array
      #  filelist = aSourceFiles
      #  filemap = Yore.filemap_from_filelist(aSourceFiles)
      #end
      #aParentDir ||= MiscUtils.file_list_ancestor(filelist)
      listfile = MiscUtils.temp_file
      MiscUtils.string_to_file(
        aSourceFiles.join("\n"),			#filelist.sort.map{|p| MiscUtils.path_debase(p, aParentDir)}.join("\n"),
        listfile
      )
      tarfile = MiscUtils.file_change_ext(aDestFile, 'tar')
			
			shell("tar cv #{aParentDir ? '--directory='+aParentDir.to_s : ''} --file=#{tarfile} --files-from=#{listfile}")
			shell("rm #{listfile}") unless config[:leave_temp_files]
			if config[:compress]
				logger.info "Compressing ..."
				tarfile_size = File.size(tarfile)
				shell("bzip2 #{tarfile}; mv #{tarfile}.bz2 #{aDestFile}")
				
				logger.info "Compressed #{'%.1f' % (tarfile_size*1.0/2**10)} KB to #{'%.1f' % (File.size(aDestFile)*1.0/2**10)} KB"
			else
				shell("mv #{tarfile} #{aDestFile}")
			end
    end
def compress(aSourceFiles,aDestFile,aParentDir=nil)
			logger.info "Collecting files ..."
			#logger.info aSourceFiles.join("\n")
      #filelist = filemap = nil
      #if aSourceFiles.is_a?(Hash)
      #  filelist = aSourceFiles.keys
      #  filemap = aSourceFiles
      #else  # assume array
      #  filelist = aSourceFiles
      #  filemap = Yore.filemap_from_filelist(aSourceFiles)
      #end
      #aParentDir ||= MiscUtils.file_list_ancestor(filelist)
      listfile = MiscUtils.temp_file
      MiscUtils.string_to_file(
        aSourceFiles.join("\n"),			#filelist.sort.map{|p| MiscUtils.path_debase(p, aParentDir)}.join("\n"),
        listfile
      )
      tarfile = MiscUtils.file_change_ext(aDestFile, 'tar')
			
			shell("tar cv #{aParentDir ? '--directory='+aParentDir.to_s : ''} --file=#{tarfile} --files-from=#{listfile}")
			shell("rm #{listfile}") unless config[:leave_temp_files]
			if config[:compress]
				logger.info "Compressing ..."
				tarfile_size = File.size(tarfile)
				shell("bzip2 #{tarfile}; mv #{tarfile}.bz2 #{aDestFile}")
				
				logger.info "Compressed #{'%.1f' % (tarfile_size*1.0/2**10)} KB to #{'%.1f' % (File.size(aDestFile)*1.0/2**10)} KB"
			else
				shell("mv #{tarfile} #{aDestFile}")
			end
    end
By default, GNU tar suppresses a leading slash on absolute pathnames while creating or reading a tar archive. (You can suppress this with the -p option.)
 tar : http://my.safaribooksonline.com/0596102461/I_0596102461_CHP_3_SECT_9#snippet
 get files from wherever they are into a single file