Shift 키를 누른 채 삭제한 후에도 동영상을 계속 재생할 수 있습니다. 플레이어를 닫으면 디스크 공간이 확보되나요?

Shift 키를 누른 채 삭제한 후에도 동영상을 계속 재생할 수 있습니다. 플레이어를 닫으면 디스크 공간이 확보되나요?

nautilus현재 재생 중인 비디오를 실제로 Shift-삭제(즉, 휴지통으로 이동하지 않음)할 수 있고 또는 ls(터미널) 에 해당 비디오에 대한 명명된 참조가 없더라도 계속 재생된다는 것을 알았습니다 .

플레이어에서 비디오 재생이 끝나면 디스크 공간이 정상적으로 확보됩니까?

나는 그것이 정상적인 행동이라고 생각하지만 그것은 나에게 확실히 새로운 경험입니다(Windows에서는 불가능했기 때문입니다).

답변1

파일을 삭제했지만 플레이어에 파일이 열려 있기 때문에 파일은 계속 사용 중입니다. 미디어 플레이어를 닫으면 파일 데이터에 대한 핸들이 해제되어 삭제됩니다.

열린 파일을 나열하는 명령 을 사용하여 이를 확인할 수 있습니다 lsof. lsof를 실행하면 영화 파일이 플레이어에 의해 열려 있는 것으로 나열되어야 하지만 옆에 "DEL"이 표시됩니다. 이는 파일이 아직 열려 있어도 삭제되었음을 의미합니다.

이는 실제로 모두 유용한 것이며 삭제한 열려 있는 파일을 실제로 복구할 수 있음을 의미합니다. 하지만 이는 다른 질문에 맡기는 것이 가장 좋습니다 :)

(내가 이해한 대로) 파일은 데이터 자체와 파일에 대한 처리(파일 시스템의 위치)로 구성되어 있기 때문에 발생합니다. 일반적으로 파일에 대한 핸들은 하나만 있지만 ln하드 링크를 생성하는 명령을 사용하여 다른 핸들을 생성할 수 있습니다. 이렇게 하면 파일과 동일한 복사본처럼 보이지만 실제로는 다른 핸들을 추가하는 것이므로 디스크 공간을 두 배로 사용하지 않습니다. 두 파일의 inode를 보면 이를 확인할 수 있습니다. 이는 데이터가 실제로 어디에 있는지 알려줍니다.

예를 들어 터미널 창에서:

ln existing_movie.avi movie_hardlink.avi

ls -i

ls에 대한 -i 인수는 파일에 대한 inode 정보를 표시합니다. 이는 동일해야 합니다.

해당 파일 중 하나를 삭제해도 다른 파일은 여전히 ​​inode에 대한 핸들을 유지하므로 데이터는 그대로 유지됩니다. 두 번째 파일을 삭제하면 inode에 남은 핸들/참조가 없으므로 삭제/사용되지 않은 공간으로 표시됩니다. 이는 여기서 두 번째 핸들이 파일 시스템의 두 번째 파일이 아니라 실행 중인 프로그램 내에 있다는 점을 제외하면 플레이어에 영화가 열려 있는 경우와 직접적으로 유사합니다.

답변2

읽다http://linuxgazette.net/105/pitcher.html, 이유를 이해하게 됩니다(그리고 하드 링크와 소프트 링크의 차이점도 배우게 됩니다).

관련 정보