シンボリックリンクレベルが多すぎます。

シンボリックリンクレベルが多すぎます。

私は次のようなファイル構造を作成しました。

test/src
test/firefox

このコマンドを実行するとき:

ln -s test/src test/firefox

test/firefox/srcへのシンボリックリンクを作成したいが、test/src次のエラーが発生します。

-bash: cd: src: Too many levels of symbolic links
  • 私は何が間違っていましたか?
  • そのフォルダの兄弟フォルダに保存されているフォルダへのシンボリックリンクを作成できませんか?
  • ポイントは何ですか?

ベストアンサー1

Dubuがコメントで指摘したように、問題は相対パスです。 NETでnginx設定をシンボリックリンクする/usr/local/etc/nginxときに同様の問題が発生しました/etc/nginx。次のようにシンボリックリンクを作成すると:

cd /usr/local/etc
ln -s nginx/ /etc/nginx

実際、ソースパスはリンクパスと相対的であるため、/etc/nginx -> /etc/nginxリンクを生成します。解決策は絶対パスを使用するのと同じくらい簡単です。

ln -s /usr/local/etc/nginx /etc/nginx

相対パスを使用して期待どおりに機能させるには、$PWDこの変数を使用して現在の作業ディレクトリパスにパスを簡単に追加できます。

cd /usr/local/etc
ln -s "$PWD/nginx/" /etc/nginx

現在のパスのスペースなどがエスケープされるように、パスを二重引用符で囲む必要があります。$PWD一重引用符を使用すると置き換えられないため、この操作を実行するときに二重引用符を使用する必要があります。

おすすめ記事