フォルダをシンボリックリンクして名前を変更するには?

フォルダをシンボリックリンクして名前を変更するには?

私は単一のリポジトリで作業しており、私のパッケージの例を次のように構造内のパッケージから分離したいと思います。

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

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

おすすめ記事