如何符号链接文件夹并更改其名称?

如何符号链接文件夹并更改其名称?

我正在 monorepo 中工作,我希望我的包的示例与结构中的包分开,如下所示:

my_packages_collection/
  examples/
    foo/
     ...
  packages/
    foo/
      example
      ...

如果我进入my_packages_collection并运行,ln -s examples/foo packages/foo/example 我会进入packages/foo一个名为的文件example而不是文件夹。

如果我运行cd packages/foo/example我得到:cd: no such file or directory: packages/foo/examplevscode显示:

Unable to read file '[...]/foo/example' (Unknown (FileSystemError): An unknown error occurred. Please consult the log for more details.)

ls -l按预期工作。

将其“推送”到科学和 github 上,并显示一个“链接文件夹”图标,其中包含带有文本的文件"examples/foo"(笑)

我缺少什么?

答案1

一种方法是chdir进入packages/foo并从那里建立符号链接:

$ mkdir my_packages_collection && cd my_packages_collection
$ mkdir -p examples/foo packages/foo
$ touch examples/foo/bar
$ cd packages/foo && ln -s ../../examples/foo example
$ ls example
bar

另一种方法是建立不带chdir.这将更难在 shell 中完成。

$ cd -
$ cd ..
$ rm -rf my_packages_collection
$ mkdir my_packages_collection && cd my_packages_collection
$ mkdir -p examples/foo packages/foo
$ touch examples/foo/bar
$ ln -s ../../examples/foo packages/foo/example
$ ls packages/foo/example
bar

这两种方法的结果都是一个包含字符串的符号链接文件../../examples/foo

$ readlink packages/foo/example
../../examples/foo

相关内容