폴더를 심볼릭 링크하고 이름을 변경하는 방법은 무엇입니까?

폴더를 심볼릭 링크하고 이름을 변경하는 방법은 무엇입니까?

저는 단일 저장소에서 작업 중이며 다음과 같이 내 패키지의 예제가 구조의 패키지와 분리되기를 원합니다.

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

들어가서 my_packages_collection실행 하면 폴더가 아닌 이라는 파일이 ln -s examples/foo packages/foo/example 들어갑니다 .packages/fooexample

실행하면 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

또 다른 접근 방식은 .NET Framework 없이 빌드하는 것입니다 chdir. 이는 셸에서 수행하기가 더 어렵습니다.

$ 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

관련 정보