シンボリックリンクを作成しようとすると、これが頻繁に発生します。エラーが発生しますToo many symbolic links
。これが何を意味するのか、そしてシンボリックリンクを作成したいディレクトリにあるときにのみこのエラーが発生するのはなぜですか?
たとえば、
cd /foo/bar
/foo/bar: sudo ln -s /some/dir /foo/bar
これはうまくいきます。
これによりエラーが発生します。
cd ~
~: sudo ln -s /some/dir /foo/bar
答え1
あなたの例は、/foo/bar
シンボリックリンクを作成する前にディレクトリに変更することを示しています。したがって、/foo/bar
ディレクトリまたは他のディレクトリへのシンボリックリンクとしてすでに存在します。
次に、次のコマンドを実行しますln -s /some/dir /foo/bar
。すでに存在するため、間違いなく失敗します。/foo/bar
/some/dir
/foo/bar
コマンドでファイル/ディレクトリパラメータを変更したようです。を使用してリンクを作成するには、ln -s
最初のファイル/ディレクトリが存在し、2番目のファイル/ディレクトリが存在してはいけません。 (これはcpコマンドと非常によく似ています)
重要な質問では、シンボリックリンクを正常に作成するために特定の場所にいる必要はありません。このln -s
コマンドは、ソースまたはターゲット(またはその両方)へのフルパスまたは相対パスを使用できます。ターゲットの親ディレクトリにリンクを作成する権限がある限り、作業ディレクトリが2つのパスのいずれかに存在しなくてもリンクを作成できます。
答え2
これは以前の使用によるものかもしれませんln
。対象を台無しにした可能性があります。
たとえば、これによりエラーが発生する可能性があります。
ln -s -T aaa aaa
ln -s -t aaa bbb
または、より古く、より曖昧な形
ln -s aaa aaa
ln -s bbb aaa/