7zip은 임시 파일로 추출한 다음 임시 이름을 실제 대상으로 바꾸나요?

7zip은 임시 파일로 추출한 다음 임시 이름을 실제 대상으로 바꾸나요?

제가 이 질문을 하는 이유는 아카이브의 압축을 풀기 위해 7zip을 호출하는 바로 그 프로그램이 포함될 수도 있는 아카이브의 압축을 풀 수 있기를 원하기 때문입니다. Linux/UNIX에서는 파일을 사용하는 동안 파일을 삭제하거나 이름을 바꿀 수 있지만 쓰기 위해 열 수는 없습니다.

답변1

대답은 '예'와 '아니요'입니다.

7zip에 대한 추출 명령을 사용하면 임시 파일이 생성되어서는 안 됩니다. 이는 Windows 탐색기 끌어서 놓기를 사용할 때 Windows에서 발생합니다(다음 문서에서 가져옴).http://www.7-zip.org/faq.html, ctl-f 임시 검색).

하지만 당신은 Linux를 사용하고 있습니다.

Linux에서 이런 일이 발생하지 않는다는 것을 100% 확신하기 위해 대규모 아카이브를 생성한 다음 추출하고 strace를 통해 프로그램을 실행했습니다.

strace -a88 -- 7z e byob.7z 2>&1

덮어쓰기 전에 연결이 해제된 현재 작업 디렉터리의 기존 파일만 보았고 액세스된 유일한 파일은 현재 작업 디렉터리의 파일이었습니다.

제가 놓친 부분이 없는지 직접 테스트해 보시기 바랍니다.

이것이 당신에게 도움이 되기를 바랍니다.

답변2

귀하의 질문은 실행 파일(또는 스크립트)에 관한 것입니다. 동일한 위치에 file1새 항목을 생성하는 메커니즘을 호출하는 것입니다 .file1

file1Unix의 파일 시스템에 대해 내가 이해한 바에 따르면 이는 열려 있는 동안(실행을 위해) 클로버를 요구합니다 . 이런 일이 발생하는 방식은 클로버로 인해 원본이 file1연결 해제되지만 열려 있기 때문에 실제로 제거되지는 않습니다. 그러나 더 이상 file1해당 디렉토리의 이름을 차지하지 않습니다 . 새 항목은 file1올바른 이름을 사용하여 별도의 위치에 생성됩니다. 이전 버전이 file1실행을 완료하고 종료되면 삭제됩니다. 그래도 새로운 file1기존 항목이 남아 있어야 합니다.

주의 사항: 이는 대부분 내 부분적인 지식을 바탕으로 한 추측입니다. 아마도 여기에 더 많은 파일 시스템 개념을 가진 누군가가 그것을 확인하거나 수정할 것입니다. 한편, 나는 이 답변을 이론적인 답변으로만 받아들이고 추가적인 실험적 검증 없이는 이에 기초하여 솔루션을 구축하지 말 것을 제안합니다.

관련 정보