code: def _move_and_merge_tree(src, dst):
      """
      Move src directory to dst, if dst is already exists,
      merge src to dst
      """
      if not osp.exists(dst):
          shutil.move(src, dst)
      elif osp.isfile(src):
          shutil.move(src, dst)
      else:
          for fp in os.listdir(src):
              src_fp = osp.join(src, fp)
              dst_fp = osp.join(dst, fp)
              if osp.isdir(src_fp):
                  if osp.isdir(dst_fp):
                      _move_and_merge_tree(src_fp, dst_fp)
                  else:
                      shutil.move(src_fp, dst_fp)
              elif osp.isfile(src_fp) and not osp.isfile(dst_fp):
                  shutil.move(src_fp, dst_fp)
  
imports: import os, sys
  import os.path
  import hashlib
  import requests
  import shutil
  import tqdm
  import time
  import tarfile
  import zipfile
  from paddle.utils.download import _get_unique_endpoints
label_desc: Use image node_id 8 for calling a global function with example usage: _move_and_merge_tree(src, dst) without return types