디렉토리 엔트리는 단지 inode에 대한 포인터입니다. inode에는 파일에 대한 메타 정보 (이름 이외)와 파일 데이터에 대한 포인터 (있는 경우)가 포함됩니다. 파일 복사를 시작하면 inode에 핸들이 생깁니다.
운영 체제는 inode에 대한 참조 수를 유지합니다. inode에 대한 참조가있는 한 inode와 파일의 데이터는 유지됩니다. inode에 대한 모든 참조가 제거되면 inode가 있고 파일에 필요한 공간이 해제됩니다.
복사 할 파일이 열려 있으면 프로세스가 파일을 닫을 때까지 파일이 유지됩니다. 파일 전송이 완료되면 복사 프로세스가 실패하면 발생합니다. 파일 전송이 도중에 실패하고 파일에 대한 모든 하드 링크를 삭제 한 경우 전송을 성공적으로 다시 시작할 수 없습니다.
편집 : 다른 사람이 지적했듯이 동일한 장치에서 파일 이동은 데이터를 이동하지 않고 수행됩니다. 대신 대상 디렉토리에 새 디렉토리 항목이 작성되고 원래 디렉토리 항목이 제거됩니다.
동일한 파일에 대해 여러 디렉토리 항목을 가질 수 있습니다. 이것을 하드 링크라고합니다. 원래 항목을 제거하지 않고 파일에 대한 새 디렉토리 항목을 작성하여 작성됩니다. 파일 시스템의 inode에는 파일을 가리키는 디렉토리 항목 수를 기록하기위한 참조 횟수가 있습니다.
EDIT2 : 프로세스가 충돌하거나 종료되면 메모리 액세스 횟수가 0으로 줄어들어 파일이 완전히 제거됩니다. 프로그램이 정상적으로 종료 될 때 발생하는 동작입니다.
정전 또는 기타 순서없는 시스템 종료의 경우 디스크를 fsck
완전히 마운트하기 전에 (파일 시스템 검사) 가 필요합니다 . 온 디스크 inode 및 디렉토리 구조의 상태에 따라 공간이 복구되거나 파일이 디렉토리에 남아 있거나 디렉토리에 새 항목이 작성됩니다 lost+found
. 결과는 디스크로 플러시되거나 파일 시스템 저널에 기록 된 변경 사항에 따라 다릅니다.