동일한 파티션의 다른 디렉터리로 파일을 이동하면 해당 파일의 데이터가 실제로 디스크에서 이동합니까?

동일한 파티션의 다른 디렉터리로 파일을 이동하면 해당 파일의 데이터가 실제로 디스크에서 이동합니까?

양방향으로 진행되는 것을 볼 수 있습니다. 파일 시스템이 각 디렉터리에 디렉터리 구조와 파일 목록을 저장한 다음 각 파일의 디스크 위치를 가리키는 경우 파일을 "이동"하기 위해 파일 데이터가 실제로 디스크에서 이동할 필요가 없습니다. 반면에 파일을 복사하고 복사본을 확인한 후 복사본이 체크아웃된 후 원본 파일을 삭제하는 방식으로 "이동"이 수행되는 것을 볼 수 있습니다. 대답은 파일 시스템 유형에 따라 달라 집니까?

답변1

아니요, 파일은 복사되지 않으며 원래 위치에 유지됩니다. 변경된 사항은 디렉토리 목록입니다. 그렇기 때문에 동일한 파티션에서 가장 큰 파일을 이동하는 데 시간이 전혀 걸리지 않습니다.

(전통적인 회전식) 디스크에 파일을 연속적으로 유지하는 것은 파일을 더 빠르게 읽고 쓸 수 있기 때문에 유리합니다. 헤드가 플래터 주위를 뛰어다닐 필요가 없습니다. 하지만, 꼭 지킬 필요는 없습니다목차디스크에서 연속적입니다.

파일을 복사하고 복사본을 확인한 다음 복사본이 체크아웃되면 원본 파일을 삭제하여 "이동"이 작동하는 것을 볼 수 있습니다. 대답은 파일 시스템 유형에 따라 달라 집니까?

나는 파일 시스템 전문가는 아니지만 일반 파일 시스템에서 이 작업을 수행하는 것은 상상도 할 수 없습니다. 이는 엄청난 성능 저하를 초래하고 하드웨어에 마모를 더할 수 있기 때문입니다.

답변2

예, 파일 시스템 유형에 따라 다릅니다. 그러나 내가 아는 모든 최신 파일 시스템은 일종의 포인터 체계를 사용합니다. linux/unix 파일 시스템(ext2, ext3, ext4...)은 이를 수행하기 위해 INODES를 사용합니다.

ls -i파일에 대해 사용 하면 파일 이름이 참조하는 inode 번호(디렉토리 항목의 메타 정보)를 확인할 수 있습니다. 이러한 파일 시스템에서 을 사용하는 경우 mv결과 작업은 파일 시스템 내의 새 포인터가 되거나 cpFS 경계를 넘는 경우 /가 됩니다.rm

관련 정보