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

관련 정보