Does persist_to_workpace follow symlinks and saves hidden directories?

I’m using bazel and want to pass build artifacts from the build job to a test jobs.
Right now I stuck at saving the bazel-out directory to persistent wokrspace.
My config.yml:

version: 2
jobs:
  build:
    machine:
      enabled: true
    working_directory: ~/root
    steps:
      - checkout
      - run: *install-bazel
      - run: *configure-bazel
      - run:
          name: Build
          command: bazel --bazelrc=.circleci/.bazelrc build ...
      - persist_to_workspace:
          root: .
          paths:
            - root/bazel-out

Job fails at the last step saying:

The specified paths did not match any files in /home/circleci/root

I also tried root/bazel-out/* and root/bazel-out/., but no luck. I think persist_to_workspace does not follow the symlinks. Is it true?

Also I noticed that when I use

- persist_to_workspace:
    root: .
    paths:
      - .

it does not save hidden directories (~/.cache, specifically). Is it also true?