파일을 만들고 다음과 같이 심볼릭 링크하면
touch "example"
ln -s "example" "link_example"
그리고 사용
rm example
심볼릭 링크가 여전히 존재합니다. 파일과 해당 파일을 가리키는 모든 심볼릭 링크를 어떻게 삭제합니까?
답변1
파일에서 이를 가리키는 심볼릭 링크로의 링크가 없으므로 이를 가리키는 링크를 직접 생각 example
하고 찾을 수 있는 방법이 없습니다 . link_example
따라서 파일과 해당 파일을 가리키는 심볼릭 링크를 제거하려면 먼저 모든 심볼릭 링크를 찾아야 합니다.
어떤 시스템을 사용하고 있는지 지정하지 않았지만,암소 비슷한 일종의 영양find
, 파일과 해당 링크를 삭제할 수 있습니다
find -L / -samefile example -delete
당신은 달리고 싶을 수도 있습니다
find -L / -samefile example
제거할 항목의 목록을 작성하는 것부터 시작하십시오.
이는 심볼릭 링크( )부터 시작하여 find
따르도록 지시 하고 동일한 inode로 확인되는 모든 파일을 보고합니다. 따라서 이는 자체 링크 뿐만 아니라 하드 링크와 소프트 링크도 일치합니다 .-L
/
example
example
example
아니면 그냥 사용하세요POSIXfind
, example
깨진 심볼릭 링크를 제거한 다음 찾을 수 있습니다.
rm example
find -L / -type l
모든 결과를 삭제해야 한다고 결정한 경우:
find -L / -type l -exec rm {} +
모든 깨진 기호 링크(쓰기 가능한 디렉토리)가 제거됩니다.