심볼릭 링크를 생성하려는 경우 이런 일이 자주 발생합니다. 오류가 발생합니다 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
첫 번째 파일/디렉토리가 존재해야 하며 두 번째 파일/디렉토리는 존재하지 않아야 합니다. (이것은 cp 명령과 매우 유사합니다)
핵심 질문의 경우 심볼릭 링크를 성공적으로 생성하기 위해 특정 위치에 있을 필요는 없습니다. 이 ln -s
명령은 원본이나 대상(또는 둘 다)에 대한 전체 경로 또는 상대 경로를 사용할 수 있습니다. 대상의 상위 디렉터리에 링크를 생성할 수 있는 권한이 있는 한 작업 디렉터리가 두 경로 중 하나에 없어도 링크를 생성할 수 있습니다.
답변2
이는 이전 사용으로 인한 것일 수 있습니다 ln
. 대상을 엉망으로 만들었을 수 있습니다.
예를 들어 이로 인해 오류가 발생할 수 있습니다.
ln -s -T aaa aaa
ln -s -t aaa bbb
또는 더 오래되고 더 모호한 형태
ln -s aaa aaa
ln -s bbb aaa/