파일을 만들었다 고 가정 해 봅시다. 새로운 inode가 생성되었습니다. 그런 다음 해당 파일에 대한 소프트 링크를 만들고 하드 링크를 삭제했습니다.파일을 삭제할 때 실제로 일어나는 일
아이 노드가 여전히 존재합니까? 그것은 메모리의 동일한 위치를 가리 킵니까? 소프트 링크가 메모리에 연결된 inode에 연결되어있어 파일을 찾지 못하거나 소프트 링크가 아이 노드에 대한 연결을 잃어 버리지 않습니까?
감사합니다.
파일을 만들었다 고 가정 해 봅시다. 새로운 inode가 생성되었습니다. 그런 다음 해당 파일에 대한 소프트 링크를 만들고 하드 링크를 삭제했습니다.파일을 삭제할 때 실제로 일어나는 일
아이 노드가 여전히 존재합니까? 그것은 메모리의 동일한 위치를 가리 킵니까? 소프트 링크가 메모리에 연결된 inode에 연결되어있어 파일을 찾지 못하거나 소프트 링크가 아이 노드에 대한 연결을 잃어 버리지 않습니까?
감사합니다.
이것은 논외 더 이상의 질문,하지만입니다 :
리눅스에서의 소프트 링크는 아이 노드에 연결되어 있지 않습니다. 그것은 단지 파일의 이름을 가지고 있습니다. (소프트 링크의 크기를보십시오? 그것은 이름의 길이가 링크입니다!). 원본 이름을 바꾸어도 링크가 끊어집니다.
[[email protected] link]$ touch foo
[[email protected] link]$ ln -s foo bar
[[email protected] link]$ ls -la
lrwxrwxrwx 1 bart bart 3 Dec 13 21:09 bar -> foo
-rw-rw-r-- 1 bart bart 0 Dec 13 21:09 foo
[[email protected] link]$ mv foo foo2
[[email protected] link]$ ls -la
lrwxrwxrwx 1 bart bart 3 Dec 13 21:09 bar -> foo
-rw-rw-r-- 1 bart bart 0 Dec 13 21:09 foo2
[[email protected] link]$ cat bar
cat: bar: No such file or directory
파일을 삭제하면 inode가 사라집니다.
아이 노드가 없어집니다. inode는 하나 이상의 하드 링크가있는 한 계속 존재합니다. 소프트 링크는 효과가 없습니다. 소프트 링크는 사실 별개의 파일입니다. 하드 링크는 동일한 파일에 대한 또 다른 포인터입니다. 하드 링크 수가 0이되면 inode가 삭제됩니다.
메모리가 덮어 쓰이지 않는 한 계속해서 존재하므로 (디스크 복구 도구가이를 얻을 수 있습니다) 운영 체제가 고려되는 한 메모리는 사용할 수 있습니다. 재사용.