find.go
func (f *FindFilter) RunFilter(arg Arg) error {
	return filepath.Walk(f.dir, func(n string, s os.FileInfo, e error) error {
		if e != nil {
			return e
		}
		if s.Mode().IsDir() && f.skipdirif(n) {
			return filepath.SkipDir
		}
		if f.ifmode(s.Mode()) {
			arg.Out <- n
		}
		return nil
	})
}
func (f *FindFilter) RunFilter(arg Arg) error {
	return filepath.Walk(f.dir, func(n string, s os.FileInfo, e error) error {
		if e != nil {
			return e
		}
		if s.Mode().IsDir() && f.skipdirif(n) {
			return filepath.SkipDir
		}
		if f.ifmode(s.Mode()) {
			arg.Out <- n
		}
		return nil
	})
}
// RunFilter yields contents of a filesystem tree. It implements the
// Filter interface.