"기호 링크가 너무 많습니다" 오류 없이 기호 링크 만들기

"기호 링크가 너무 많습니다" 오류 없이 기호 링크 만들기

심볼릭 링크를 생성하려는 경우 이런 일이 자주 발생합니다. 오류가 발생합니다 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/

관련 정보