기존 파일을 대상 파일에 심볼릭 링크할 수 없는 이유는 무엇입니까? [복사]

기존 파일을 대상 파일에 심볼릭 링크할 수 없는 이유는 무엇입니까? [복사]

내가 말하는 내용을 더 잘 설명하는 예가 있습니다.

$ touch tas
$ ln -s /etc/leviathan_pass/leviathan3 /tmp/l2/tas
ln: failed to create symbolic link '/tmp/l2/tas': File exists

기본적으로 연결하려는 파일이 존재하지 않는 경우에만 심볼릭 링크를 만들 수 있습니다. 하드 링크에 대해 이야기하면서 문제를 이해합니다. inode 충돌을 일으킬 수 있으므로 두 개의 다른 파일을 연결할 수 없습니다. 따라서 명령이 실행되는 동안 파일을 생성해야 하며 둘 다 "지정"한다고 가정합니다. "를 동일한 inode로 ). 이제 소프트 링크에 ​​대해 이야기할 때 그것은 나에게 이해가 되지 않습니다. 심볼릭 링크는 inode와 아무 관련이 없습니다. 그렇다면 무엇이 문제가 될 수 있습니까?

도움을 주셔서 미리 감사드립니다.

답변1

기본적으로 이 명령은 ln기존 파일을 삭제하지 않습니다. ln -sf TARGET LINK_NAME심볼릭 링크를 사용하여 대상 경로(LINK_NAME)를 강제로 덮어쓸 수 있습니다 .

하드 링크로 LINK_NAME을 무시할 수 있습니다 ln -f TARGET LINK_NAME. inode 충돌에 대한 설명은 의미가 없습니다. 파일만 교체합니다. 당신 말이 부분적으로 옳습니다표적하드 링크가 먼저 존재해야 합니다.

관련 정보