def compact_copy (target_path)

      @other_db = Cabinet.new(target_path)
      self.each { |k, v| @other_db[k] = v }
      @other_db.close
    end
def compact_copy (target_path)

      @other_db = Cabinet.new(target_path)
      self.each { |k, v| @other_db[k] = v }
      @other_db.close
    end
Copies the current cabinet to a new file.

 Does it by copying each entry afresh to the target file. Spares some
 space, hence the 'compact' label...