Symlink
如何符號連結文件夾並更改其名稱?
我在 monorepo 工作
,我希望我的包的範例與結構中
的包分開,
如下所示
my_packages_collection/ examples/ foo/ ... packages/ foo/ example ...
如果我 cd in
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/example
並
vscode
顯示Unable to read file '[...]/foo/example' (Unknown (FileSystemError): An unknown error occurred. Please consult the log for more details.)
ls -l
按預期工作將其“推送”用於科學和 github,並顯示一個“連結文件夾”圖示,其中包含一個帶文本的文件
"examples/foo"
(LOL)我錯過了什麼?
之前發佈在這裡
一種方法是從那裡
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