Typically called by the explore()/recurse() methods and of form:

                f(pathInTree, **kwargs)

            and returns dictionary of which one element is

                'status':   True|False

            recursion continuation flag is returned:

                'continue': True|False

            to signal calling parent whether or not to continue with tree
            transversal.

            Save the node specified by a path in the data tree of self
            (the astr_pathInTree) to the passed data tree, relative to a
            passed 'pathDiskRoot', i.e.

                S.node_copy('/', destination = T, pathDiskRoot = '/some/path/in/T')

            Will copy the items and "folders" in (source) S:/ to
            (target) T:/some/path/in/T

            :param kwargs:
            :return:

def node_copy(self, astr_pathInTree, **kwargs):
            """
            Typically called by the explore()/recurse() methods and of form:

                f(pathInTree, **kwargs)

            and returns dictionary of which one element is

                'status':   True|False

            recursion continuation flag is returned:

                'continue': True|False

            to signal calling parent whether or not to continue with tree
            transversal.

            Save the node specified by a path in the data tree of self
            (the astr_pathInTree) to the passed data tree, relative to a
            passed 'pathDiskRoot', i.e.

                S.node_copy('/', destination = T, pathDiskRoot = '/some/path/in/T')

            Will copy the items and "folders" in (source) S:/ to
            (target) T:/some/path/in/T

            :param kwargs:
            :return:
            """

            # Here, 'T' is the target 'disk'.
            T                   = None
            str_pathDiskRoot    = ''
            str_pathDiskFull    = ''
            str_pathTree        = ''
            str_pathTreeOrig    = self.pwd()
            for key, val in kwargs.items():
                if key == 'startPath':      str_pathTree        = val
                if key == 'pathDiskRoot':   str_pathDiskRoot    = val
                if key == 'destination':    T                   = val
            str_pathDiskOrig    = T.pwd()
            str_pathDiskFull    = str_pathDiskRoot + str_pathTree

            # self.debug('In node_copy... str_pathDiskfull = %s\n' % str_pathDiskFull)

            if len(str_pathDiskFull):
                if not T.isdir(str_pathDiskFull):
                    try:
                        T.mkdir(str_pathDiskFull)
                    except:
                        return {'status' :      False,
                                'continue':     False,
                                'message':      'unable to create pathDiskFull: %s' % str_pathDiskFull,
                                'exception':    exception}
                if T.cd(str_pathDiskFull)['status']:
                    if self.cd(str_pathTree)['status']:
                        T.cd(str_pathDiskFull)
                        for str_filename, contents in self.snode_current.d_data.items():
                            # print("str_filename = %s; contents = %s" % (str_filename, contents))
                            T.touch(str_filename, contents)
                    else:
                        return{'status':    False,
                               'continue':  False,
                               'message':   'source pathTree invalid'}
                    self.cd(str_pathTreeOrig)
                    T.cd(str_pathDiskOrig)
                    return {'status':   True,
                            'continue': True}
                else:
                    return{'status':    False,
                           'continue':  False,
                           'message':   'target pathDiskFull invalid'}
            return {'status':   False,
                    'continue': False,
                    'message':  'pathDiskFull not specified'}