# File lib/fakefs/fileutils.rb, line 98
    def cp(src, dest, options = {})
      fail Errno::ENOTDIR, dest if src.is_a?(Array) && !File.directory?(dest)

      # handle `verbose' flag
      RealFileUtils.cp src, dest, options.merge(noop: true)

      # handle `noop' flag
      return if options[:noop]

      Array(src).each do |source|
        dst_file = FileSystem.find(dest)
        src_file = FileSystem.find(source)

        fail Errno::ENOENT, source unless src_file

        if dst_file && File.directory?(dst_file)
          FileSystem.add(
            File.join(
              dest, File.basename(source)), src_file.entry.clone(dst_file))
        else
          FileSystem.delete(dest)
          FileSystem.add(dest, src_file.entry.clone)
        end
      end

      nil
    end