![Linux는 디렉토리와 관련된 모든 심볼릭 링크를 찾아 제거합니다.](https://linux55.com/image/22133/Linux%EB%8A%94%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%99%80%20%EA%B4%80%EB%A0%A8%EB%90%9C%20%EB%AA%A8%EB%93%A0%20%EC%8B%AC%EB%B3%BC%EB%A6%AD%20%EB%A7%81%ED%81%AC%EB%A5%BC%20%EC%B0%BE%EC%95%84%20%EC%A0%9C%EA%B1%B0%ED%95%A9%EB%8B%88%EB%8B%A4..png)
그래서 나는 많은 심볼릭 링크를 만들어 작동시키려고 노력하고 다양한 조합을 시도하는 상황에 처해 있습니다. 이제 다음 오류가 발생합니다.
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)를 사용해 보십시오.-L
ls