私は次のようなファイル構造を作成しました。
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
一重引用符を使用すると置き換えられないため、この操作を実行するときに二重引用符を使用する必要があります。