기본적으로 내가 찾은 것은p7zip먼저 압축할 디렉터리를 검색한 다음 해당 파일을 단일 zip 형식으로 압축합니다.
다음 시나리오를 고려해 보세요. 압축하기 위해 먼저 스캔한 수백 GB의 파일과 폴더가 있습니다. 스캔이 완료된 후 파일을 삭제했다고 가정해 보겠습니다. 스캔이 완료될 때 파일이 어떻게 누락될 수 있는지 모르겠지만 이 동작이 프로덕션에서 나타났으므로 로컬 컴퓨터에서 직접 삭제했습니다. 이 경우 다음 오류가 발생하고 무기한 중단됩니다.
7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,6 CPUs Intel(R) Core(TM) i5-9500T CPU @ 2.20GHz (906EA),ASM,AES-NI)
Scanning the drive:
29741 folders, 48865 files, 5035919485 bytes (4803 MiB)
Creating archive: /home/mymachine/Downloads.zip
Items to compress: 78606
WARNING: No such file or directory
/var/webarch/data/fs-root/538/2022/05/20/19964
그렇다면 이러한 경고를 무시하고 압축을 계속하는 데 사용할 수 있는 플래그가 p7zip 또는 hack에 있습니까? 마찬가지로 프로덕션에서 시간 초과 오류가 발생하는 대신 스캔 후 누락된 파일 중 일부를 무시할 수 있습니다.
답변1
이것은 버그 보고서에서 언급되었습니다. #2099 zip 아카이브를 생성하는 동안 파일이 삭제되면 7z가 중단됩니다. 2017년부터.
개발자는 이를 고치겠다고 약속했지만 그러지 않았습니다.
-mmt1
그는 스레드 수를 1로 설정하는 스위치를 추가하는 해결 방법을 제안했습니다 . 분명히 정지는 스레드 중 하나에서 파일을 찾을 수 없을 때 다중 스레드 충돌로 인해 발생하며 스레드가 하나만 있으면 피할 수 있습니다.