Linux는 디렉토리와 관련된 모든 심볼릭 링크를 찾아 제거합니다.

Linux는 디렉토리와 관련된 모든 심볼릭 링크를 찾아 제거합니다.

그래서 작동하도록 하기 위해 많은 심볼릭 링크를 만들고 모든 종류의 조합을 시도하는 상황이 약간 있습니다. 이제 다음 오류가 발생했습니다.

ls: cannot access /etc/sv/me: Too many levels of symbolic links

/service/ 또는 /etc/sv/에 심볼릭 링크가 없습니다.
이 오류를 해결할 수 있는 유일한 방법은 /service/ 또는 /etc/sv/와 관련된 모든 심볼릭 링크를 제거하는 것입니다. 심볼릭 링크?

답변1

약간의 find속임수를 사용하여 순환 심볼릭 링크를 식별할 수 있습니다. 다음을 시도해 보세요.

find /path/to/search -type l -a ! \( -xtype b -o -xtype c -o -xtype d -o -xtype p -o -xtype f -o -xtype s -o -xtype l \) 2>/dev/null

이는 심볼릭 링크를 필터링한 다음 심볼릭 링크의 대상 유형이 가능한 inode 유형인 모든 항목을 제외하는 방식으로 작동합니다. 남은 유일한 것은 find대상의 유형을 결정할 수 없는 것입니다. 이는 순환 심볼릭 링크에서만 발생합니다(깨진 것들은 일치합니다 -xtype l).

답변2

심볼릭 링크는 "원거리에서의 작업"을 나타내지 않습니다. 즉, 심볼릭 링크의 대상이 되는 것은 대상에 직접적으로 영향을 주지 않습니다.

표시되는 오류는 /etc, 또는 /etc/sv, 또는 /etc/sv/me중 하나가 심볼릭 링크임을 나타냅니다. 어느 쪽인지 파악하고 수정하세요.

답변3

을 수행할 때 -l대문자 대신 소문자(대시 ell)를 사용해 보십시오 .-Lls

관련 정보